Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wyswietleniem zapytania
Forum PHP.pl > Forum > PHP
aagaaz
Mam taki kod. gdzie są dwa pytania "nadawca" i "zapytanie".Zapytanie "nadawca" jest ok , bo w bazie sql czyta poprawnie, ale nie mogę tego nadawcy wyświetlić...
Możecie pomóc...

  1. $nadawca=mysql_query("select login from uzytkownicy where id=wiad_od");
  2.  
  3. $zapytanie=mysql_query("select * from wiadomosci where wiad_do=".$_SESSION["id"]."");
  4.  
  5. echo"<TABLE ALIGN = CENTER BGCOLOR=#CCCCFF CELLPADDING=10 BORDER=6 >";
  6. echo"<TR>
  7. <TH>NADAWCA</TH>
  8. <TH>TEMAT</TH>
  9. <TH>TREŚĆ</TH>
  10. <TH>DATA WIADOMOŚCI</TH>
  11. <TH>USUŃ</TH>
  12. </TR>\n";
  13.  
  14. while($wiersz=mysql_fetch_array($zapytanie))
  15. {
  16. $wiad_od=htmlspecialchars($wiersz['id']);
  17. $wiad_temat=htmlspecialchars($wiersz['wiad_temat']);
  18. $wiad_tresc=htmlspecialchars($wiersz['wiad_tresc']);
  19. $wiad_data=htmlspecialchars($wiersz['wiad_data']);
  20.  
  21. echo "<TR>
  22. <strong>
  23. <TD>".$nadawca["login"]."</TD>
  24. <TD>$wiad_temat</TD>
  25. <TD>$wiad_tresc</TD>
  26. <TD>$wiad_data</TD>
  27. <TD><a href='odbiorcza.php?id=".$wiersz["wiad_id"]."'>Usuń</a></TD>
  28. <br/></strong>
  29. </TR>\n";
  30.  
  31.  
  32. }
  33. print"</TABLE>";
Fifi209
Szczególnie jak nie znamy struktury Twojej bazy i przykładowych rekordów?
aagaaz
Myśle , że w tym kawałku jest błąd :
<TD>".$nadawca["login"]."</TD>

Ale mogę się mylić...
Nie wiem jak tam powinno być ok...

Jeżeli trzeba będzie to podam kody...
ADeM
Spróbuj:
  1. $nadawca = mysql_fetch_assoc( mysql_query( "select login from uzytkownicy where id=wiad_od" ) );

Prawdopodobnie musisz też zmienić "wiad_od".
aagaaz
Z tym zapytaniem też nie zadziałało sad.gif

Próbowałam połączyć te zapytania

  1. $zapytanie=mysql_query("select wiadomosci.wiad_temat, wiadomosci.wiad_tresc,wiadomosci.wiad_data,uzytkownicy.login from wiadomosci left join uzytkownicy where wiad_do=".$_SESSION["id"]." and uzytkownicy.id=wiad_od order by wiad_data DESC");


ale tez pokazuje się błąd

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\VertrigoServ\www\logowanie\wiadomosci\odbiorcza.php on line 64
Zapytanie: --- błąd: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where wiad_do=29 and uzytkownicy.id=wiad_od order by wiad_data DESC' at line 1

poprawiłam zapytanie, tym razem działa ...
Ale nie działa mi nadal wyświetlenie nadawcy...



  1. $zapytanie=mysql_query("select wiadomosci.wiad_temat, wiadomosci.wiad_tresc,wiadomosci.wiad_data,uzytkownicy.login from wiadomosci left join uzytkownicy on uzytkownicy.id=wiad_odbiorca where wiad_nadawca=".$_SESSION["id"]." order by wiad_data DESC");
  2.  
  3. echo"<TABLE ALIGN = CENTER BGCOLOR=#CCCCFF CELLPADDING=10 BORDER=6 >";
  4. echo"<TR>
  5. <TH>NADAWCA</TH>
  6. <TH>TEMAT</TH>
  7. <TH>TREŚĆ</TH>
  8. <TH>DATA WIADOMOŚCI</TH>
  9. <TH>USUŃ</TH>
  10. </TR>\n";
  11.  
  12. while($wiersz=mysql_fetch_array($zapytanie));
  13. {
  14. $wiad_nadawca=htmlspecialchars($wiersz['nadawca']);
  15. $wiad_temat=htmlspecialchars($wiersz['wiad_temat']);
  16. $wiad_tresc=htmlspecialchars($wiersz['wiad_tresc']);
  17. $wiad_data=htmlspecialchars($wiersz['wiad_data']);
  18.  
  19.  
  20. echo "<TR>
  21. <strong>
  22. <TD>$wiad_nadawca</TD>
  23. <TD>$wiad_temat</TD>
  24. <TD>$wiad_tresc</TD>
  25. <TD>$wiad_data</TD>
  26. <TD><a href='odbiorcza.php?id=".$wiersz["wiad_id"]."'>Usuń</a></TD>
  27. <br/></strong>
  28. </TR>\n";
  29.  
  30.  
  31. }
  32. print"</TABLE>";
Quadina
W Twoim selecie nie ma pola `nadawca`, masz tam pole `login`. Chyba po prostu czeski błąd popełniłeś, a tak to wszystko już jest ok.
aagaaz
Ok zrobiłam inne zapytanie , w SQL wyswietla poprawnie wyniki a czemu nie może mi wyświetlić na stronie.... Widzicie gdzieś błąd?questionmark.gif

  1. $zapytanie=mysql_query("select wiad_tresc,wiad_temat,wiad_data,login from wiadomosci, uzytkownicy where wiad_nadawca=uzytkownicy.id");
  2.  
  3.  
  4.  
  5. echo"<TABLE ALIGN = CENTER BGCOLOR=#CCCCFF CELLPADDING=10 BORDER=6 >";
  6. echo"<TR>
  7. <TH>NADAWCA</TH>
  8. <TH>TEMAT</TH>
  9. <TH>TREŚĆ</TH>
  10. <TH>DATA WIADOMOŚCI</TH>
  11. <TH>USUŃ</TH>
  12. </TR>\n";
  13.  
  14. while($wiersz=mysql_fetch_array($zapytanie) or die('Zapytanie: '.$zapytanie.' --- błąd: '.mysql_error()));
  15. {
  16. $wiad_nadawca=htmlspecialchars($wiersz['nadawca']);
  17. $wiad_temat=htmlspecialchars($wiersz['wiad_temat']);
  18. $wiad_tresc=htmlspecialchars($wiersz['wiad_tresc']);
  19. $wiad_data=htmlspecialchars($wiersz['wiad_data']);
  20.  
  21.  
  22.  
  23. echo "<p><h4>".$wiersz['wiad_tresc']." <br />".
  24.  
  25. "<TR>
  26. <strong>
  27. <TD>$wiad_nadawca</TD>
  28. <TD>$wiad_temat</TD>
  29. <TD>$wiad_tresc</TD>
  30. <TD>$wiad_data</TD>
  31. <TD><a href='odbiorcza.php?id=".$wiersz["wiad_id"]."'>Usuń</a></TD>
  32. <br/></strong>
  33. </TR>\n";
  34.  
  35.  
  36. }
  37. print"</TABLE>";
Quadina
Że się powtórze...

  1. $wiad_nadawca=htmlspecialchars($wiersz['nadawca']);


Pobierasz nazwe pola o nazwie `nadawca` a nie masz takiego w swoim zapytaniu. Masz natomiast pole `login`. Po za tym Twoje zapytanie powinno chyba wyglądać tak:
  1. SELECT
  2. w.wiad_tresc,w.wiad_temat,w.wiad_data,u.login AS nadawca
  3. FROM
  4. wiadomosci w, uzytkownicy u WHERE w.wiad_nadawca=u.id

aagaaz
To zapytanie również działa w sql , tzn wyświetla wyniki, ale na stronie nie pokazuje żadnych wyników ... Pusta tabela...

No i pokazuje się informacja " Zapytanie: Resource id #5 --- błąd: "
Quadina
Czy jak użyjesz w swoim skrypcie zapytania, które wpisałem ci w ostatnim poście również generuje się błąd? Czy po wpisaniu go do phpMyAdmin generuje się jakiś błąd?
aagaaz
Ok coś pozmieniałam i wyswietla się wiadomość ale w okienku nadawca wyswietla się numer id nadawcy a nie jego login z bazy uzytkownikow

  1. $nadawca=mysql_query("select login from uzytkownicy where id=wiad_nadawca");
  2.  
  3. $zapytanie=mysql_query("select * from wiadomosci where wiad_odbiorca=".$_SESSION["id"]." order by wiad_data DESC");
  4.  
  5. echo"<TABLE ALIGN = CENTER BGCOLOR=#CCCCFF CELLPADDING=10 BORDER=6 >";
  6. echo"<TR>
  7. <TH>NADAWCA</TH>
  8. <TH>TEMAT</TH>
  9. <TH>TREŚĆ</TH>
  10. <TH>DATA WIADOMOŚCI</TH>
  11. <TH>USUŃ</TH>
  12. </TR>\n";
  13.  
  14. while($wiersz=mysql_fetch_array($zapytanie))
  15. {
  16. $wiad_nadawca=htmlspecialchars($wiersz['wiad_nadawca']);
  17. $wiad_temat=htmlspecialchars($wiersz['wiad_temat']);
  18. $wiad_tresc=htmlspecialchars($wiersz['wiad_tresc']);
  19. $wiad_data=htmlspecialchars($wiersz['wiad_data']);
  20.  
  21.  
  22.  
  23. echo "<TR>
  24. <strong>
  25. <TD>$wiad_nadawca</TD>
  26. <TD>$wiad_temat</TD>
  27. <TD>$wiad_tresc</TD>
  28. <TD>$wiad_data</TD>
  29. <TD><a href='odbiorcza.php?id=".$wiersz["wiad_id"]."'>Usuń</a></TD>
  30. <br/></strong>
  31. </TR>\n";
  32.  
  33.  
  34. }
  35. print"</TABLE>";


Quadina
  1. while($wiersz=mysql_fetch_array($zapytanie))


Spróbuj bez tego or die w while'u ;-)
aagaaz
Bez tego or die i z takim zapytaniem ...

$zapytanie=mysql_query("select * from wiadomosci where wiad_odbiorca=".$_SESSION["id"]." order by wiad_data DESC");

Pokazuje mi prawidłowo jedną wiadomość dla np.agi ale w miejscu nadawca pokazuje mi id uzytkownika zamiast jego login....

czyli to zapytanie o nadawce :
$nadawca=mysql_query("select login from uzytkownicy where id=wiad_nadawca");
wogóle nie działa ...


Quadina
Skopiuj sobie tam takie zapytanie i go nie modyfikuj, bo widzę, ze wszystko co napisałem modyfikujesz i źle modyfikujesz ;-)
  1. SELECT
  2. w.wiad_tresc,w.wiad_temat,w.wiad_data,u.login AS login_nadawcy
  3. FROM
  4. wiadomosci w, uzytkownicy u WHERE w.wiad_nadawca=u.id


później drukuj go sobie tak:
  1. $wiad_nadawca=htmlspecialchars($wiersz['login_nadawcy']);
aagaaz
Ok sorki...

Działa wyświetlają się teraz loginy nadawców , ale wszystkie jaki mam w bazie.... A tu powinien być jeden ....bo jest jedna wiadomość do agi ....
Quadina
Zatem dodaj jedynie Twój wpis "wiad_odbiorca=".$_SESSION["id"]." w wherze
  1. SELECT
  2. w.wiad_tresc,w.wiad_temat,w.wiad_data,u.login AS login_nadawcy
  3. FROM
  4. wiadomosci w, uzytkownicy u
  5. WHERE
  6. w.wiad_nadawca=u.id
  7. AND
  8. wiad_odbiorca= $_SESSION["id"]
aagaaz
Dzięki za wytrwanie do końca ...

Oczywiście działa jak powinno...

Plusik dla Ciebie winksmiley.jpg
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.