Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wyświetlenie rekordu
Forum PHP.pl > Forum > Przedszkole
Turson
Mam problem, bo pogłubiłem się z funkcjami...

  1. <?PHP
  2. if($_SESSION["zalogowany"]==1){
  3. $zapytanie = "SELECT `id` FROM `users` WHERE `login`='$_SESSION[login]'";
  4. $idzapytania = mysql_query($zapytanie);
  5. while ($autor = mysql_fetch_row($idzapytania)) {
  6. $zapytanie2 = "SELECT `name` FROM `notes` WHERE `autor_id`='$autor[0]'";
  7. $idzapytania2 = mysql_query($zapytanie2);
  8. while ($wiersz = mysql_fetch_row($idzapytania2)){
  9. echo "<div id='panel'>
  10. <a class='index' href='note.php?id=add'></a>
  11. </div><table class='notatki'><tr><td width=70%><b>nazwa</b></td><td width='30%'><b>akcja</b></td></tr>";
  12. echo "<tr><td>'.$wiersz[0].'</td><td>edytuj/usuń</td></tr>";}}
  13. echo"</table>";}
  14. else echo "Nie jesteś zalogowany.";
  15. ?>

Taki skrypt nie wyświetla nic
Sephirus
do wszystki mysql_query('...') dopisz:



I się dowiesz co nie gra wink.gif
Turson
Akurat problem leżu tu najprawdopodobniej w zamykaniu funkcji użyciem }
mortus
Rozumiem, że to ma wyświetlać notatki zalogowanego użytkownika. Jeśli tak, to po co dwie pętle while i w ogóle po co dwa zapytania, skoro można to zrobić jednym:
  1. SELECT `n`.`name` FROM `notes` `n` INNER JOIN `users` `u` ON (`u`.`id` = `n`.`autor_id` AND `u`.`login` = {$_SESSION['login']})


EDIT: Pomyliłem rodzaj złączenia, zamiast LEFT JOIN powinno być INNER JOIN. Poprawiłem zapytanie.
Sephirus
liczba { i } się zgadza - przejrzałem na początku - zresztą nie wyświetlało by "nic" tylko parse error

EDIT: poza tym ludzie - nauczcie się pisać jakoś schludnie...

Prawda że to wygląda lepiej:

  1. if($_SESSION["zalogowany"] == 1)
  2. {
  3. $zapytanie = "SELECT `id` FROM `users` WHERE `login`='$_SESSION[login]'";
  4. $idzapytania = mysql_query($zapytanie) or die(mysql_error());
  5. while($autor = mysql_fetch_row($idzapytania))
  6. {
  7. $zapytanie2 = "SELECT `name` FROM `notes` WHERE `autor_id`='$autor[0]'";
  8. $idzapytania2 = mysql_query($zapytanie2) or die(mysql_error());
  9. while($wiersz = mysql_fetch_row($idzapytania2))
  10. {
  11. echo "<div id='panel'>
  12. <a class='index' href='note.php?id=add'></a>
  13. </div><table class='notatki'><tr><td width=70%><b>nazwa</b></td><td width='30%'><b>akcja</b></td></tr>";
  14. echo "<tr><td>'.$wiersz[0].'</td><td>edytuj/usuń</td></tr>";
  15. }
  16. }
  17. echo"</table>";
  18. }
  19. else
  20. {
  21. echo "Nie jesteś zalogowany.";
  22. }


to twój kod wydaje mi się że powinno być tak:

  1. if($_SESSION["zalogowany"] == 1)
  2. {
  3. $zapytanie = "SELECT `id` FROM `users` WHERE `login`='$_SESSION[login]'";
  4. $idzapytania = mysql_query($zapytanie) or die(mysql_error());
  5. while($autor = mysql_fetch_row($idzapytania))
  6. {
  7. $zapytanie2 = "SELECT `name` FROM `notes` WHERE `autor_id`='$autor[0]'";
  8. $idzapytania2 = mysql_query($zapytanie2) or die(mysql_error());
  9. echo "<div id='panel'>
  10. <a class='index' href='note.php?id=add'></a>
  11. </div><table class='notatki'><tr><td width=70%><b>nazwa</b></td><td width='30%'><b>akcja</b></td></tr>";
  12. while($wiersz = mysql_fetch_row($idzapytania2))
  13. {
  14. echo "<tr><td>'.$wiersz[0].'</td><td>edytuj/usuń</td></tr>";
  15. }
  16. echo"</table>";
  17. }
  18.  
  19. }
  20. else
  21. {
  22. echo "Nie jesteś zalogowany.";
  23. }
Turson
Wiem, że się zgadza ale nie wiem czy w dobrym miejscu pozamykane. Niby za wyświetleniem zmiennej funkcji ale i tak nie działa.


@morthus
Pierw pobiera numer ID zalogowanego użytkownika, bo do numeru ID są przypisane dane w innej tabeli.
mortus
Cytat(TursoN @ 29.12.2011, 16:20:52 ) *
Pierw pobiera numer ID zalogowanego użytkownika, bo do numeru ID są przypisane dane w innej tabeli.


Wiem o tym, niemniej jednak wystarczy jedno zapytanie.
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.