Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Używanie wyników zapytania w drugim zapytaniu
Forum PHP.pl > Forum > Przedszkole
sinke
Witam,
mam następujący problem:
jestem w trakcie robienia strony z ogłoszeniami i mam problem z kategoriami, ponieważ chcę aby kategorie były wczytywane z bazy i tutaj nie jest problem, bo to udało mi się utworzyć bez problemu. Natomiast problem pojawia się wtedy kiedy chcę aby po przez naciśnięcie na daną kategorię wyświetlały mi się ogłoszenia tylko z tej danej kategorii.
I wymyśliłam sobie coś takiego:
  1. <?php
  2.  
  3. require_once('../db.inc.php');
  4. $zapytanie = "SELECT id_kategorie, nazwa, sort FROM kategorie ORDER BY nazwa ASC ";
  5. $wynik = @mysqli_query($link, $zapytanie); //$r
  6. $num = @mysqli_num_rows($wynik);
  7.  
  8. if ($num > 0)
  9. {while ($row = mysqli_fetch_array($wynik, MYSQL_ASSOC))
  10. {
  11. echo '<ul>
  12. <li><a href="pokaz_ogloszenia_niezal3_el.php?kategoria=' .$row['sort'] . '">' .$row['nazwa'] . '</a></li>
  13. </ul>';
  14. $slowo = $row['nazwa'];
  15. $where = "WHERE k.nazwa = '$slowo'";
  16.  
  17. }
  18.  
  19. }
  20. else {
  21. echo '<p class="error">Błąd! Problem z serwerem.</p>';
  22. }
  23. ?>

Jest to częśc kodu, który includuję do pliku w którym znajduję się zapytanie poniżej.
I teraz używam drugiego zapytania, w którym chcę wykorzystać zmienną $where.
  1. <?php
  2. $q3 = "SELECT o.id, o.tytul, k.nazwa, u.name, DATE_FORMAT(data, '%d-%m-%Y' ) , o.nowa_nazwa
  3. FROM ogloszenia o
  4. LEFT JOIN kategorie AS k
  5. USING ( id_kategorie )
  6. LEFT JOIN users_2 AS u
  7. USING ( user_id )
  8. $where
  9. ORDER BY o.data DESC
  10. LIMIT $start,$display ";
  11.  
  12. $r3 = @mysqli_query($link, $q3);
  13. $num3 = @mysqli_num_rows($r3);
  14.  
  15. if ($num3 > 0)
  16. {
  17. echo '<br><table id="ogloszenia_tab">
  18. <tr>
  19. <th>nr:</th>
  20. <th>obrazek:</th>
  21. <th>tytuł:</th>
  22. <th>autor:</th>
  23. <th>data dodania:</th>
  24. </tr>';
  25.  
  26.  
  27. $bg = '#ffffff';
  28. while ($row3 = mysqli_fetch_array($r3, MYSQL_ASSOC) )
  29.  
  30. {
  31.  
  32. $bg = ($bg == '#ffffff' ? '#e9e9e9' : '#ffffff');
  33. echo ' <tr bgcolor="' .$bg. '" onClick="location.href=\'http://ad-board.aleksandralysko.pl/view_print.php?id=' .$row3['id']. '\'" >
  34.  
  35. <td id="nr">' .$row3['id'] . '</td>
  36. <td id="obrazek_tr">';
  37. $nazwa = $row3['nowa_nazwa'];
  38.  
  39. if (!empty($nazwa))
  40. { echo '<img src="miniaturki/ ' . $row3['nowa_nazwa'] . '" width="50px" height="50px">';}
  41. else
  42. { echo '<img src="uploads/brak_obrazka.png" width="50px" height="50px">';}
  43. echo '</td>
  44. <td id="tytul">' .$row3['tytul'] . '</td>
  45. <td id="autor">' .$row3['name'] . '</td>
  46. <td id="data">' .$row3['DATE_FORMAT(data, \'%d-%m-%Y\' )'] . '</td>
  47. </tr>
  48. ';
  49.  
  50. }
  51.  
  52. echo '</table>';
  53. mysqli_free_result($r3);
  54. mysqli_close($link);
  55. ?>

Niestety, ale kiedy w zapytaniu używam zmienną $where, żadne wyniki się nie wyświetlają. A jak wpiszę nie jako zmienną tylko ręcznie tzn. WHERE k.nazwa = 'praca' to wszystko działa.

Obydwa zapytania są poprawne bo sprawdzałam w phpMyAdmin.
Jakiś pomysł co robię źle?
ixpack
A wyświetl sobie $q3 - tak dla pewności, że przekazujesz sobie $where do zapytania. No i usuń @, żeby zobaczyć czy wszystko jest ok...
sinke
wyświetlałam sobie q3 i wygląda tak:
  1. SELECT o.id, o.tytul, k.nazwa, u.name, DATE_FORMAT(DATA, '%d-%m-%Y' ) , o.nowa_nazwa FROM ogloszenia o LEFT JOIN kategorie AS k USING ( id_kategorie ) LEFT JOIN users_2 AS u USING ( user_id ) WHERE k.nazwa = 'zwierzęta' ORDER BY o.DATA DESC LIMIT 0,10

więc jest okej.

dodałam jeszcze wyświetalnie błędów przez taką funkcję var_dump i coś takiego mi się wyświetliło:
object(mysqli_result)#1 (0) { }
thek
Dwa posty i oba bez stosowania się do właściwego bbcode. A w regulaminie jak byk pisze, że code nie jest tu odpowiednie.
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.