Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql] problem z parametrem limit, stronicowanie
pavelb
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 1.06.2006

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


Witam!
Oto kod:

  1. <?php
  2. $kategoria = 1;
  3.  
  4. $sql = "SELECT * FROM menu WHERE id='$kategoria'";
  5. $result = mysql_query($sql);
  6. while($r = mysql_fetch_array($result)) {
  7. $pozycja = $r['pozycja'];
  8.  
  9. $sqlb = "SELECT * FROM rzecz WHERE kat_id='$pozycja'";
  10. $resultb = mysql_query($sqlb);
  11. while($rb = mysql_fetch_array($resultb)) {
  12. $tytul = $rb['tytul'];
  13. echo $tytul.'<br />';
  14.  
  15. }
  16. }
  17. ?>


Moje pytanie jak wyświetlić tylko 3 rzeczy?
Wstawienie LIMIT 3 nic tu nie daje bo są 2 pętle z wieloma wynikami (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Wie ktoś co w tej sytuacji zrobić ?
Pozdro
Go to the top of the page
+Quote Post
Adrian Staniszew...
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 17.10.2006
Skąd: Łódź

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


ale w ktorej petli chcesz wyswietlic 3 rzeczy (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
pierwszej czy drugiej (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
pavelb
post
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 1.06.2006

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


Pierwsza pętla daje tylko $pozycja do drugiej pętli.
Druga pętla wyświetla dane.
W momencie jak dam limit 3 w drugiej pętli to wyświetla po 3 rzeczy, ale pierwsza pętla kilkakrotnie to powtarza i w sumie wyświetla się dużo więcej.

I jak by ten problem dało się rozwiązać mógłbym zrobić sobie stronicowanie...
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Moim zdaniem robisz "drobny" błąd wykonując zapytania SQL w pętli.

Nie prościej (i wydajniej!) byłoby zrobić takie coś:

  1. <?php
  2. $sql = "select * from rzecz where kat_id in (select pozycja from menu where id="'.(int)$kategoria.'") limit 3";
  3. $res = mysql_query($sql);
  4.  
  5. while($row = mysql_fetch_assoc($res)) {
  6. echo $row['tytul'].'<br />';
  7. }
  8. ?>


Pisane z palce, więc mogła zdarzyć się literówka lub jakiś banalny błąd (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
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: 22.08.2025 - 12:56