![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 262 Pomógł: 26 Dołączył: 23.01.2009 Skąd: eZ Systems Ostrzeżenie: (0%) ![]() ![]() |
witam,
dopiero się uczę PHP i na tą chwilę mam problem z wyświetleniem wyników zapytania na stronie. kod w pliku php wygląda następująco: Kod <?php require('connection.php'); $sql = "SELECT r.Nazwa, u.uprawa_powierzchnia, o.ogrodek_powierzchnia, d.login FROM Dzialkowcy d INNER JOIN Ogrodek o ON d.ID_dzialkowca=o.ID_dzialkowca INNER JOIN Uprawy u ON o.ID_ogrodka=u.ID_ogrodka INNER JOIN Rosliny r ON u.ID_rosliny=r.ID_rosliny WHERE d.login='".$_SESSION['login']."'"; $wynik=mysql_query($sql); echo '<table border=0>'; echo '<th>Np.</th><th> Nazwa rośliny </th>'; echo '<th> Powierzchnia uprawy </th>'; for($i=0; $i<mysql_num_rows($wynik);$i++) { $lista=mysql_fetch_array($wynik); } if (mysql_num_rows($wynik)) { while ($row = mysql_fetch_array($wynik)) { $j=$i+1; echo '<tr>'; echo '<td>'.$j.'</td><td>'; echo $lista['r.Nazwa']; echo '</td>'; echo '<td>'; echo $lista['u.uprawa_powierzchnia']; echo '</td>'; echo '</tr>'; } } else { echo 'Brak danych'; } echo '</table>'; ?> Pomimo tego, że w tabelach: Dzialkowcy, Ogrodek, Uprawy, Rosliny - istnieją dane do wyświetlenia dla danego użytkownika, to nie chce tego wyświetlać. W czym może być problem?? Bardzo proszę o pomoc. Ten post edytował sunpietro 23.01.2009, 13:37:37 -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
nazwy pol sa unikatowe, wiec MySQL w wyniku nie zwroci dla nich przedrostku nazwy tabeli, wiec:
Kod <?php require('connection.php'); $sql = "SELECT r.Nazwa, u.uprawa_powierzchnia, o.ogrodek_powierzchnia, d.login FROM Dzialkowcy d INNER JOIN Ogrodek o ON d.ID_dzialkowca=o.ID_dzialkowca INNER JOIN Uprawy u ON o.ID_ogrodka=u.ID_ogrodka INNER JOIN Rosliny r ON u.ID_rosliny=r.ID_rosliny WHERE d.login='".$_SESSION['login']."'"; $wynik=mysql_query($sql); echo '<table border=0>'; echo '<th>Np.</th><th> Nazwa rośliny </th>'; echo '<th> Powierzchnia uprawy </th>'; // <--- tutaj kawalek kodu usuniety, przesunalby Ci uchwyt wyniku na ostatni wiersz i w nastepnym kroku nie dostalbys rezultatow if (mysql_num_rows($wynik)) { while ($lista = mysql_fetch_array($wynik)) // <---- tutaj $lista a nie $row, jesli dalej czytasz z $lista { $j=$i+1; echo '<tr>'; echo '<td>'.$j.'</td><td>'; echo $lista['Nazwa']; // <---- tu zmiana echo '</td>'; echo '<td>'; echo $lista['uprawa_powierzchnia']; // <---- tu zmiana echo '</td>'; echo '</tr>'; } } else { echo 'Brak danych'; } echo '</table>'; ?> zawsze w takiej sytuacji dodaj echo(mysql_error()), zeby sprawdzic czy masz blad w zapytaniu i var_dump($lista);, zeby wiedziec, czy masz blad w zwracanym wyniku Ten post edytował ddiceman 23.01.2009, 13:45:47 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 262 Pomógł: 26 Dołączył: 23.01.2009 Skąd: eZ Systems Ostrzeżenie: (0%) ![]() ![]() |
niestety dalej ten kod nie działa poprawnie
![]() nie wiem dlaczego, ale zapytanie mi zwraca wartość NULL :/ -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
wklej tu, co zawiera $sql i wynik mysql_error()
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 6.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kod .... for($i=0; $i<mysql_num_rows($wynik);$i++) { $lista=mysql_fetch_array($wynik); } if (mysql_num_rows($wynik)) { while ($row = mysql_fetch_array($wynik)) { $j=$i+1; echo '<tr>'; echo '<td>'.$j.'</td><td>'; echo $lista['r.Nazwa']; echo '</td>'; echo '<td>'; echo $lista['u.uprawa_powierzchnia']; echo '</td>'; echo '</tr>'; } } else { echo 'Brak danych'; } echo '</table>'; ?> sproboj tak(tą czesc wstaw w miejsce kropek): Kod $num=mysql_numrows($wynik); $lista=mysql_fetch_array($wynik, MYSQL_NUM); $i=0; while ($i < $num) { echo "<td>$lista[$i]</td>"; $i++; } if($num==0) { echo "Brak danych"; } echo "</table>"; ?> a jesli cchesz, by bylo czytelniej, sproboj tak Kod $num=mysql_numrows($wynik);
$i=0; while ($i < $num) { $lp=$i+1; $nazwa=mysql_result($wynik,$i,"r.Nazwa"); $uprawa=mysql_result($wynik,$i,"u.uprawa_powierzchnia"); echo "<tr><td>$lp</td><td>$nazwa</td><td>$uprawa</td></tr>"; $i++; } if($num==0) { echo "Brak danych"; } echo "</table>"; ?> Ten post edytował wasyllinio 6.02.2009, 02:01:16 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 12:36 |