Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]fetchAll() w mysqli ?
Forum PHP.pl > Forum > Przedszkole
Xart
Witam wyszukałem w internecie pewien skrypt, który był mi potrzebny i jest on napisany w PDO

  1. $stmt = $db->query("SELECT * FROM kategorie");
  2. $marki = $stmt->fetchAll();


jako, iż ja piszę w mysqli postanowiłem sobie zamienić to na:

  1. $stmt = $mysqli->query("SELECT * FROM kategorie");
  2. $marki = $stmt->fetch_assoc();


ale potem wykonuję pętlę na tablicy

  1. <?php foreach($marki as $v): ?>
  2. <option value="<?php echo $v['id']?>"><?php echo $v['nazwa']; ?></option>
  3. <?php endforeach; ?>


i po zamianie na mysqli wywala błąd
Illegal string offset 'nazwa'...

Więc jest jakiś problem z tablicą czy to wina fetch_assoc() zamiast fetchAll w PDO ?
Turson
Wyprintuj tablicę
Xart
Wyprintowanie jak dam w mysqli fetch_assoc:

Array ( [id] => 1 [nazwa] => Kateg [opis] =>
Kategoriabezpodkategorissssssssssssssssssssssss
[podkategorie] => TAK )


Wyprintowanie jak dam w mysqli fetch_all:

Array ( [0] => Array ( [0] => 1 [1] => Kateg [2] =>
Kategoriabezpodkategorissssssssssssssssssssssss
[3] => TAK ) [1] => Array ( [0] => 2 [1] => Kategoriazpodkategoriami [2] => Kategoriazpodkategoriami [3] => TAK ) [2] => Array ( [0] => 3 [1] => Test [2] =>
fsd
[3] => TAK ) [3] => Array ( [0] => 4 [1] => Teste [2] =>
fsdfsdf
[3] => NIE ) [4] => Array ( [0] => 5 [1] => hhh [2] =>
gggg
[3] => TAK ) [5] => Array ( [0] => 6 [1] => [2] =>
]p[]
[3] => TAK ) )

a kod, który działał w PDO wyprintowywuje tak:

Array ( [0] => Array ( [id] => 1 [0] => 1 [nazwa] => Kateg [1] => Kateg [opis] =>
Kategoriabezpodkategorissssssssssssssssssssssss
[2] =>
Kategoriabezpodkategorissssssssssssssssssssssss
[podkategorie] => TAK [3] => TAK ) [1] => Array ( [id] => 2 [0] => 2 [nazwa] => Kategoriazpodkategoriami [1] => Kategoriazpodkategoriami [opis] => Kategoriazpodkategoriami [2] => Kategoriazpodkategoriami [podkategorie] => TAK [3] => TAK ) [2] => Array ( [id] => 3 [0] => 3 [nazwa] => Test [1] => Test [opis] =>
fsd
[2] =>
fsd
[podkategorie] => TAK [3] => TAK ) [3] => Array ( [id] => 4 [0] => 4 [nazwa] => Teste [1] => Teste [opis] =>
fsdfsdf
[2] =>
fsdfsdf
[podkategorie] => NIE [3] => NIE ) [4] => Array ( [id] => 5 [0] => 5 [nazwa] => hhh [1] => hhh [opis] =>
gggg
[2] =>
gggg
[podkategorie] => TAK [3] => TAK ) [5] => Array ( [id] => 6 [0] => 6 [nazwa] => [1] => [opis] =>
]p[]
[2] =>
]p[]
[podkategorie] => TAK [3] => TAK ) )

@EDIT:
Zrobiłem i już działa ale tak trochę na około:

  1. $stmt = $mysqli->query("SELECT * FROM kategorie");
  2. $marki = array();
  3. while($row = $stmt->fetch_assoc()){
  4. $marki[] = $row;
  5. }


jest do tego w mysqli jakaś funkcja która odpowiada fetchall z PDO ?
Turson
Wystarczyło zajrzeć do dokumentacji mysqli by zobaczyć, że fetch_all może przyjmować parametr MYSQLI_ASSOC
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.