• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

mysqli - foreach

VPS Starter Arubacloud
0 głosów
667 wizyt
pytanie zadane 25 sierpnia 2018 w PHP przez mazurekta Początkujący (270 p.)

Mam mały problem. nie wiem, czy popełniłem błąd, czy po prostu nie da się zrobić tego tak jak sobie wymyśliłem.

A więc pobieram sobie z bazy danych wszystko z tabeli 'komis'.

$zapytanie = $db_h->query("SELECT * FROM komis");

i teraz chciałbym wyciągnąć każdy z wierszy za pomocą foreach, zapisałem to tak: 

foreach($zapytanie as $auto) {
    echo '<pre>';
        print_r($auto);
    echo '</pre>';
    //echo $auto['name'];
}

I nic, nic się nie stało.

Użyłem print_r i var_dump na $zapytanie.

echo '<pre>';
    print_r($zapytanie);
echo '<pre>';

 

echo '<pre>';
    var_dump($zapytanie);
echo '<pre>';

i otrzymałem:

mysqli_result Object
(
    [current_field] => 0
    [field_count] => 6
    [lengths] => 
    [num_rows] => 12
    [type] => 0
)

 

object(mysqli_result)#2 (5) {
  ["current_field"]=>
  int(0)
  ["field_count"]=>
  int(6)
  ["lengths"]=>
  NULL
  ["num_rows"]=>
  int(12)
  ["type"]=>
  int(0)
}

 

W tabeli mam "id, markę, model, właściciela, rocznik i datę", czy jestem w stanie wyciągnąć to za pomocą foreach, jeśli tak, to co źle robię?

komentarz 25 sierpnia 2018 przez mazurekta Początkujący (270 p.)
foreach($zapytanie as $auto) {
    $auto = $zapytanie->fetch_assoc();
    echo '<pre>';
        print_r($auto);
    echo '</pre>';
}

Zapisałem tak jak powyżej, i dostałem pierwsze pięć elementóe z tablicy, ale czemu tylko 5?

Jest ich 12.

komentarz 25 sierpnia 2018 przez StOcK Mądrala (6,100 p.)

Może dlatego, że nadpisujesz zmienną $auto?
Zobacz sobie co zwraca $mysqli->query oraz co iterujesz wink

komentarz 25 sierpnia 2018 przez mazurekta Początkujący (270 p.)
foreach($zapytanie as $auto) {
    echo 'ok';
}

Dostałem 5 razy "ok", a nie 12.

1 odpowiedź

+1 głos
odpowiedź 25 sierpnia 2018 przez Bosswell Nałogowiec (36,470 p.)
wybrane 25 sierpnia 2018 przez mazurekta
 
Najlepsza

https://secure.php.net/manual/en/mysqli-result.fetch-row.php

while ($row = $zapytanie->fetch_row()) {
        print_r ($row);
}

 

komentarz 25 sierpnia 2018 przez mazurekta Początkujący (270 p.)
Czyli nie mogę tego zrobić za pomocą "foreach"?
1
komentarz 25 sierpnia 2018 przez Bosswell Nałogowiec (36,470 p.)

Możesz przez foreachm ale wtedy musisz wcześniej złapać wszystkie wiersze.

$data = $zapytanie->fetch_all(MYSQLI_ASSOC);

foreach ($data as $row) {
    print_r($row);
}

 

komentarz 25 sierpnia 2018 przez mazurekta Początkujący (270 p.)
Oooo właśnie, i tego mi brakowało, dziękuje.

Podobne pytania

0 głosów
2 odpowiedzi 190 wizyt
pytanie zadane 7 października 2023 w PHP przez Piotrek2713 Mądrala (5,500 p.)
+1 głos
1 odpowiedź 711 wizyt
pytanie zadane 1 grudnia 2021 w PHP przez BarSki13 Obywatel (1,250 p.)
0 głosów
1 odpowiedź 922 wizyt
pytanie zadane 11 maja 2020 w PHP przez Bakkit Dyskutant (7,600 p.)

92,970 zapytań

141,934 odpowiedzi

321,168 komentarzy

62,299 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...