"Mysql_fetch_row" kullanın

4 Cevap php

Çok sonra bunu echo bir döngü "için" kullanabileceğiniz birkaç satır veri almak ve sonra numaralandırılmış bir diziye sonuçlarını eklemek gerekir ...

(Ben zaten veritabanına bağlı) bu var:

$genres_sql = 'SELECT genreID FROM genres WHERE imdbID = ?';
if ($stmt->prepare($genres_sql)) {
	// bind the query parameters
	$stmt->bind_param('i', $movieid);
	// bind the results to variables
	$stmt->bind_result($genre);
	// execute the query
	$stmt->execute();
	$stmt->fetch();
}

Burada bir değişken içine ilk sonuç (satır) olsun. Ama ben bu kullanarak her sonuç echo böylece numaralandırılmış bir diziye eklemek gerekir:

if (!empty($genre)) {
for ($i = 0; $i + 1 < count($genre); $i++)
{
	echo $genre[$i].', '; 
}
echo $genre[$i];
}

Bu yankı: $genre[0], $genre[1], $genre[2], ve böylece son bir kadar.

I know that mysql_fetch_row can do the work, but I'm new to programming so I need a very detailed explanation.. Thank you!!

4 Cevap

Sen MySQLi_Statement::fetch yöntemi döngü kullanarak yapabilirsiniz:

$stmt->bind_result($genre);
$stmt->execute();
$genres = array();
while ($stmt->fetch()) {
    $genres[] = $genre;
}

Temelde fetch while her sonuç yineleme yapmak için kullanabileceğiniz bir yineleyici sağlar. Içindeki değişkenler bind_result (bu durumda $genre) her yineleme ile tekrar belirlenir.

Ben mysqli'nin aşina% 100 değilim ama pgsql komutları bir sürü bu tür bir şey yapıyor oynadım ve ben sizin için ne arıyor mysqli-result->fetch_assoc olduğunu düşünüyorum. Bu yüzden gibi oldukça kolay üzerinde döngü olabilir bir ilişkisel dizi üretecektir:

while ($row = $result->fetch_assoc()) {
    printf ($row["genre"]);
}

EDIT: Alnitak i bu cevap için yorumlar var daha iyi bir açıklama ile bağlantılı oldu.

Bu gerçekten sorusuna bir cevap değil, bir virgülle ayrılmış bir liste olarak bir dizi yazdırmak istiyorsanız, bu döngü için bir daha implode komutunu kullanmak daha iyidir:

//Replaces the for loop in the question
echo implode(', ', $genre);

Virgül sonra son öğe var ... dışında olduğunu.

Eğer gerçekten sadece ve ilişkisel dizi çoğu durumda kullanmak çok basit olmasına rağmen bir dizi numaralandırılmış sadece $ result-> fetch_array (MYSQLI_NUM) kullanmak istiyorsanız sadece, @ Mykroft cevap tamamlayın.