[SOLVED]Problem z fetch_row();


(szwabek998) #1

Witam. Mam problem. Pobieram z bazy SQL dane instrukcją SELECT. Dane mieszczą się w dwóch wierszach lecz wyświetla mi się tylko jeden wiersz z dwóch. Sprawdziłem w phpMyAdmin'ie - skopiowałem i wkleiłem (dla wykluczenia literówki) instrukcję SELECT i PMA zwrócił mi 2 wiersze. Dla jeszcze większej pewności użyłem num_rows() w kodzie php. Przypisałem zmiennej wartość num_rows() i okazało się że tam też widnieje liczba 2. Wklejam kawałek kodu gdzie jest problem:

if(!$result = $dbo->query($query)) {

		echo 'Nieudało się wykonać zapytania SQL!';

		exit();

		}

		else {

		$b = $result->num_rows;

		$row = $result->fetch_row();


			for($a = 0; $a <= $b; ++$a) {

			$zmienna[$a] = $row[$a];

			}

			echo "$zmienna[0] $zmienna[1] $b";

		}

if sprawdza czy czy zapytanie SQL udało się wykonać. $b to liczba pobranych wierszy. Pętla wydaje mi się w porządku bo zarówno $zmienna[1] jak i $row[1] nic nie dają. Błąd jest pewnie błachy, lecz ja go nie umiem znaleźć :slight_smile:


(Konrad Kosowski) #2

fetch_row() zwraca pierwszy wiersz z selecta.

foreach($result->fetch_row() as $row)

{

 //Twój kod tutaj

}

(szwabek998) #3

Rozwiązałem. Ale dzięki w/w pętli foreach na to wpadłem :slight_smile:

$a = 0;

while ($row = $result->fetch_row()) {

			$zmienna[$a++] = $row[0];

			}


			for($c = count($zmienna), $d = 0; $d != $c; ++$d){

			//instrukcje wyświetlania tabeli	(ze zmiennych robię tabelę html)

			}