Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Wyświetlanie danych z tablicy tablicy
Forum PHP.pl > Forum > Przedszkole
IceManSpy
Witam

Wcześniej pisałem temat z podobnym kodem, ale teraz chce się dowiedzieć o zepełną inną rzecz. Mam taki kodzik. Klasa:
  1. class Bazowa
  2. {
  3. public function PobierzDane()
  4. {
  5. $db = new mysqli("localhost", "root", "haselko", "test");
  6. if($db->connect_errno){
  7. die('Błąd połączenia: ' . $db->connect_errno);
  8. }
  9. $sql = "select * from tabela1";
  10. $zapytanie = $db->query($sql);
  11. while($wynik=$zapytanie->fetch_assoc())
  12. {
  13. $dane[]= $wynik;
  14. }
  15. $db->close();
  16. return $dane;
  17. }
  18. function Wyswietl($tablica)
  19. {
  20. echo "<table border=\"1\">";
  21. foreach($tablica as $wyn)
  22. {
  23. foreach($wyn as $pokaz => $wart)
  24. {
  25. echo $pokaz." = ".$wart."<br />"; // o to miejsce mi głównie chodzi
  26. }
  27.  
  28. }
  29. echo "</table>";
  30.  
  31. }
  32. }

Reszta:
  1. $wiz = new Bazowa();
  2. $dane = $wiz->PobierzDane();
  3. $wiz->Wyswietl($dane);


Chodzi mi o funkcję Wyswietl i pośrednio PobierzDane. Czy jest jakiś sposób aby pobrać dane w funkcji PobierzDane do tablicy i przekazać do Wyswietl, ale tak, aby to nie była tablica w tablicy jak teraz. Bo aby wyświetlić elementy, to w Wyswietl muszę robić foreach w foreachu, zamiast np jednego foreach. Chyba, że tak może być?
Jeśli wyświetlę $dane za pomocą print_r to mam:
Array ( [0] => Array ( [ID] => 1 [nazwa] => php ) [1] => Array ( [ID] => 9 [nazwa] => c++ ) [2] => Array ( [ID] => 7 [nazwa] => kurs ) [3] => Array ( [ID] => 4 [nazwa] => mysql ) [4] => Array ( [ID] => 5 [nazwa] => oracle ) [5] => Array ( [ID] => 6 [nazwa] => js ) [6] => Array ( [ID] => 10 [nazwa] => C# ) [7] => Array ( [ID] => 11 [nazwa] => Zend ) )
Spawnm
po co to:
#
while($wynik=$zapytanie->fetch_assoc())
#
{
#
$dane[]= $wynik;
#
}

daj return $wynik.
IceManSpy
A w którym miejscu mam dać tego returna? Po pustej pętli while, w pętli while czy w ogóle nie robić pętli, tylko dać $wynik = $zapytanie->fetch_assoc i potem dać return ?
Spawnm
Zobacz:
  1. $wynik=$zapytanie->fetch_assoc();
  2. print_r($wynik);
IceManSpy
Jak wykonam to:
  1. $sql = "select * from tabela1";
  2. $zapytanie = $db->query($sql);
  3. $wynik=$zapytanie->fetch_assoc();
  4. print_r($wynik);

To dostaję pierwszy rekord:
Array ( [ID] => 1 [nazwa] => php )
A co z następnymi? Więc domyślam się, że musi być while. Ale jak to zrobić z przypisywaniem, aby nie zwrócić tablicy w tablicy.
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.