Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Używanie wyników zapytania w drugim zapytaniu
sinke
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 26.02.2011
Skąd: Bieruń

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


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?

Ten post edytował sinke 4.05.2011, 13:52:35
Go to the top of the page
+Quote Post
ixpack
post
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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


A wyświetl sobie $q3 - tak dla pewności, że przekazujesz sobie $where do zapytania. No i usuń @, żeby zobaczyć czy wszystko jest ok...

Ten post edytował ixpack 3.05.2011, 16:27:21


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post
sinke
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 26.02.2011
Skąd: Bieruń

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


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) { }

Ten post edytował sinke 4.05.2011, 16:03:27
Go to the top of the page
+Quote Post
thek
post
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Dwa posty i oba bez stosowania się do właściwego bbcode. A w regulaminie jak byk pisze, że code nie jest tu odpowiednie.
Powód edycji: [thek]: Po PW autor ma czas do 21-22 na poprawki. Potem znów zamykam.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 04:27