Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Powtarzanie funkcji mysqli_fetch_array
Forum PHP.pl > Forum > Przedszkole
rossecki
Witam, swego czasu zapragnąłem napisać menu które będzie potrafiło wyświetlić "potomków". Ogólnie udało mi się coś takiego stworzyć i o dziwo to działa! Ale, tak zawsze jest jakieś ale mam problem z wyzerowaniem funkcji mysqli_fetch_array tak aby dla każdego kolejnego elementu zostało dokonane sprawdzenie, istnieje taki sposób czy trzeba w inny sposób napisać kod/ kombinować?

  1. <ul>
  2. <?php
  3. $spr = array();
  4. $q = "SELECT id, title, parent FROM pages ORDER BY id";
  5. $r = mysqli_query ($dbc, $q);
  6. $r2 = mysqli_query ($dbc, $q);
  7. while ($row = mysqli_fetch_array ($r, MYSQLI_NUM))
  8.  
  9.  
  10.  
  11.  
  12. {
  13. if (!in_array($row[0], $spr))
  14. {
  15. echo ("<li><a href=\"./index.php?strona=130&action=edit&id=$row[0]\">$row[1]</a> <a href=\"./delete.php?action=delete&id=$row[0]\">[x]</a></li><br />");
  16. $spr[] = $row[0];
  17. echo ("<ul>");
  18. //Zaczynamy drugą pętlę (w pętli)
  19. while ($row1 = mysqli_fetch_array ($r2, MYSQLI_NUM)) {
  20. if (!in_array($row1[0], $spr)) {
  21. if ($row[0]==$row1[2]) {
  22. echo ("<li><a href=\"./index.php?strona=130&action=edit&id=$row1[0]\">$row1[1]</a>
  23. <a href=\"./delete.php?action=delete&id=$row1[0]\">[x]</a></li><br />");
  24. $spr[] = "$row1[0]";
  25. }}
  26. }
  27. }
  28. echo ("</ul>");
  29. unset($row1);
  30. }
  31. ?>
  32. </ul>
!*!
Menu z podmenu robisz rekurencyjnie. Pobierz wszytko, napisz funkcje która będzie sprawdzać czy menu rodzic posiada dzieci, jak tak wywołaj funkcje raz jeszcze.
rossecki
Zrobiłem to odwrotnie, nie powiem goni mnie czas żeby na jutro to działało, a potem na spokojnie napiszę funkcje na tablicach.

W tej funkcji ja ładuję pierwszy element, po czym wykonuje sprawdzenie czy jakiś kolejny element ma w polu "parent" wartość id tego wypisanego elementu.
Wypisany element jest dodawany do tablicy $spr która przechowuje wszystkie zapisane $id żeby już się nie powtórzyły.

rozwiązaniem było wrzucenie $r2 = mysqli_query w pętle przez co za każdym razem jest jakby wywoływana od nowa.

Tak zdaję sobie sprawę że jest to praktycznie śmiecowy kod i beznadziejna funkcja ale niestety to musi na jutro tylko działać a potem na spokojnie przepiszę to sobie na tablicę (1 połączenie z bazy danych a reszta operacji na ściągniętej tablicy biggrin.gif)

Proszę nie zamykać to dzisiaj/jutro wrzucę dla potomnych kod na tych tablicach
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.