Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Wyświetlenie rekordu
Turson
post
Post #1





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


do wszystki mysql_query('...') dopisz:



I się dowiesz co nie gra (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Turson
post
Post #3





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Akurat problem leżu tu najprawdopodobniej w zamykaniu funkcji użyciem }
Go to the top of the page
+Quote Post
mortus
post
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


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.

Ten post edytował mortus 29.12.2011, 16:21:33
Go to the top of the page
+Quote Post
Sephirus
post
Post #5





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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. }


Ten post edytował Sephirus 29.12.2011, 16:24:12
Go to the top of the page
+Quote Post
Turson
post
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


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.

Ten post edytował TursoN 29.12.2011, 16:22:12
Go to the top of the page
+Quote Post
mortus
post
Post #7





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 01:34