Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: daza danych mysql -php
Forum PHP.pl > Forum > PHP
koralik
Witam wink.gif ogolnie jestem pocztakujacy w tym temacie wink.gif wiec prosze o wyrozumialosc wink.gif
robie stronke internetowa zrobilem system logowania rejestracji odzyskiwnaia hasla wink.gif teraz przyszedl czas na komentarze na stronie ale tylko dla zalogowanych userow. a wiec w czym problem?? system komentarzy juz srobile i dzialaja rewelacyjnie ale mam problem manowicie.. mam dwie tabele w bazie danych jedna to :uzytkownicy(kolumny: idu -numer indetyfikacyjny(klucz glowny),email,login,pass,klucz,token) i druga tabele :komentarze (kolumny:idk-numer indetyfikacyjny(klucz glowny),nick,komentarz,data). dodaje komentarz na formularzu i wysweitlaja sie komentarze np.
echo"uzytkownik 'nick' u dniu 'data', wystawil komenatrz 'komentarz'!. skoro jest to tylko do zalogowanych to chcialbym zeby w miejscu 'nick' w echo pojawil sie 'login' z tabeli uzytkownicy... i teraz jak to zrobic wink.gif slyszalem o jakis relacjach miedzy tabelmai z kluczme obcym ale jakos nie bardzo kumam, prosil bym o jakas podpowiec ale taka na chlopski rozum.
MaciekDZN
witaj wink.gif przy dodawaniu komentarza dodajesz do bazy zamiast loginu jego ID, po wywołaniu komentarzy jak masz ID użytkownika po prostu wyciągasz z bazy jego LOGIN

coś w stylu:

  1. <?php
  2.  
  3.  
  4. $kom = mysql_query("SELECT * FROM komentarze");
  5.  
  6. while($k=mysql_fetch_array($kom)){
  7.  
  8. $login = mysql_query("SELECT * FROM uzytkownicy where id='$k[id_uzytkownika]'");
  9.  
  10. $l = mysql_fetch_array($login);
  11.  
  12. echo "Komentarz dodał <a href='uzytkownicy.php?id_user=$k[id_uzytkownika]'>$l[login]</a>";
  13.  
  14. }
  15.  
  16. ?>


ps. pisz bardziej składnie i zrozumiale wink.gif używaj CODE i PHP wink.gif
Pyton_000
A Ty nie usz mysql_*
koralik
Witam wink.gif czyli rozumiem ze w momencie dodawania komntarza do bazy tzn. tableli komentarze dodaje id uzytkownika ktory ten komentarz wystawil.?
to jest moj formularz

<form method="post" action="koment.php">
Nick: <input type="text" name="nick" size=20/><span style="font-size:12px;"> (Musi zawierać min. 5 znaków)</span><br><br>z
Email:<input type="text" name="email" size=20/><span style="font-size:13px;"> (Nigdy nie będzie widoczny)</span><br></td><br><span style="font-size:12px;">
<tr>
<span style="font-size:16px;">Komentarz:</span> (Komentarz musi zawierać min. 10 znaków ,a max. 400 znaków)<br>
<textarea name="komentarze" rows=10 cols=38></textarea></p>
<input type="submit" value="Dodaj">
</tr>
</form>

//przesylam dane postem

$nick=$_POST['nick'];
$email=$_POST ['email'];
$komentarze=$_POST['komentarze'];
$data=date('d-m-Y H:i');


require_once "connect.php";

$polaczenie=@new mysqli ($host, $db_login, $db_pass, $db_name);

if($polaczenie->connect_errno!=0)

{

echo "Error".$polaczenie->connect_errno;

} else
{

$nick=$_POST['nick'];
$email=$_POST ['email'];
$komentarze=$_POST['komentarze'];
$data=date('d-m-Y H:i');


$nick=htmlentities(trim($nick),ENT_QUOTES,"UTF-8");
$email=htmlentities(trim($email),ENT_QUOTES,"UTF-8");
$komentarze=htmlentities(trim($komentarze),ENT_QUOTES,"UTF-8");

//dodaje komntarz do bazy (w tym miejscu dodaje idu z tabeli uzytkownicy tzn. id uzytkownika)

$polaczenie->query(sprintf("INSERT INTO komentarze VALUES(NULL, '%s' , '%s' , '%s','%s')",mysqli_real_escape_string($polaczenie,$nick),mysqli_real_escape_string($polaczenie,$email),mysqli_real_escape_string($polaczenie,$komentarze),mysqli_real_escape_string($polaczenie,$data)));

A nie mus byc to id polaczone z sesja podczas logowania uzytkownika??
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.