Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Nie wyświetla wszystkich wyników
Forum PHP.pl > Forum > Przedszkole
Turson
Ślęczę nad tym długo, analizuję i nie mogę rozwikłać czemu poniższy kod nie wyświetla wszystkich wyników z bazy.
Dokładniej mam 2 wiersze w tabli (2 artykułu) a pokazuje na liście tylko 1... Napis, link są prawidłowe ale pomija zawsze 1 wynik.
Są teraz 2, pokazuje 1. Jak jest 1, to nie pokazuje żadnego, ani nawet informacji, że nie ma artykułu

  1. <ul>
  2. <?PHP
  3. require_once('pdo.php');
  4. $sql=$db->query("SELECT id, link, title, category_id FROM news ORDER by id DESC LIMIT 5");
  5. $l=$sql->rowCount();
  6. if($l>0)
  7. {
  8. $w=$sql->fetch();
  9. $pyt=$db->query('SELECT link FROM categories WHERE id='.$w["category_id"].'');
  10. $kat=$pyt->fetch();
  11. foreach($sql as $w)
  12. {
  13. echo '<a href="artykul.php?kat='.$kat["link"].'&id='.$w["id"].'&title='.$w["link"].'"><li>'.$w["title"].'</li></a>';
  14. }
  15. }
  16. else echo '<a href="#"><li>Brak artykułów</li></a>';
  17. $sql->CloseCursor();
  18. ?>
  19. </ul>


Widzicie coś tutaj nie tak?
Może świeżym spojrzeniem zobaczycie jakiś błąd wink.gif
ber32
Witam
może tak
  1. $sql=$db->query("SELECT id, link, title, category_id FROM news ORDER by id DESC LIMIT 5");
  2. $sql->execute();
  3.  
  4. var_dump($sql->rowCount(), count($sql->fetchAll()));
  5.  

pmir13
Cytat(Turson @ 10.09.2013, 16:18:58 ) *
Widzicie coś tutaj nie tak?

Widzimy co jest nie tak, ale przede wszystkim rzuca się w oczy próba napisania od nowa w php implementacji złączeń.
Zamiast pobierać listę newsów a potem dla każdego dodatkowo wyciągać informacje z tabeli kategorii należy zwyczajnie sformułować jedno odpowiednie zapytanie, które zrobi to wszystko od razu.
Dzięki temu dostajemy w każdym wierszu wszystkie potrzebne informacje i dużo trudniej zrobić jakiś głupi błąd.
  1. SELECT n.id, n.link AS news_link, n.title, n.category_id, c.link AS cat_link
  2. FROM news n JOIN category c ON n.category_id = c.id
  3. ORDER BY n.id DESC LIMIT 5
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.