mysql_fetch_assoc ohne Ergebnis

suntrop

Erfahrenes Mitglied
Hallo,

ich versuche jetzt seit fast drei Stunden hier weiter zu kommen:

PHP:
if ($renderEmails) {
	echo '<textarea>';
	echo ' Anzahl'.mysql_num_rows($res).' ';
	while ($c = mysql_fetch_assoc($res))
	{
		echo 'Test'.$c['id'];
	}
	echo '</textarea>';
}

Der Inhalt der While-Schleife wird nicht ausgeführt. mysql_num_rows() gibt mir zwar 2 zurück (was korrekt ist), aber var_dump liefert mir bool(false).
Das verstehe ich nicht. Wie kann ein Ergebnis von 2 als false gewertet werden? :confused:
 
Hast du die Datensätze vielleicht schon abgeholt?
Kann ich ein "Query" nur einmal "fetchen"?

Weiter oben im Skript steht tatsächlich
PHP:
while ($row = mysql_fetch_assoc($res))

Da hole ich also aus dem selben mysql_query Ergebnis bereits ein Array. Wenn ich das nur einmal machen kann, wie nutze ich den Inhalt dann weiter unten ein zweites Mal? Wenn ich den Resource-Handle ($row) dort wieder einsetzte, funktioniert es bei mir nicht.
 
… ich dachte bisher immer $row ist dann ein Array mit allen Datensätzen!?

Folgendermaßen sieht mein Code jetzt aus - und funktioniert noch nicht richtig :(

PHP:
$sql = "SELECT …";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);

$sqlUpdate = 'UPDATE contact_manager_activity SET is_exported = "1" WHERE uid=""';
while ($row)
{
	$sqlUpdate .= ' OR uid="'.$row['id'].'"';
}

while ($row)
{
	echo 'Test'.$row['id'];
}

Ich hatte es gerade auch mit einer foreach Schleife probiert, aber dann kam ich nicht mehr an die einzelnen Felder wie id, email etc. ran.
 
Die mysql_fetch_assoc()-Funktion liefert allerdings nur so lange einen Datensatz bis alle abgeholt wurden. Du kannst diese Funktion ähnlich der array_unshift()-Funktion sehen, die jedes mal ein Element entfernt.
 
Ich denke jetzt habe ich es gerafft. War eine schwere Geburt :-)

Danke dir für deine Hilfe!

Grüße
suntrop


P.S.
array_unshift fügt Elemente hinzu, statt sie zu entfernen ;)
 
Ich verwende egal bei was mysql_fetch_array()

Da hab ich wenigstens die gewissheit das was kommt

oder she ich hier was falsch zwischen mysql_fetch_array und dem assoc?
 
Die mysql_fetch_array()-Funktion unterscheidet sich von der mysql_fetch_assoc()-Funktion in dem Punkt, dass ein Array mit numerischem und assoziativem Schlüssel zurückgegeben wird. Mit dem zweite Parameter der mysql_fetch_array()-Funktion kann die Art des zurückgegebenen Array bestimmt werden.
 
Zurück