Paul Styrnol: (MySQL) Überprüfen ob Abfrage Ergebnisse zurückgegeben hat

Beitrag lesen

Hallo,

Die While-Schleife wird NUR DANN ausgeführt, wenn Ergebnisse vorhanden sind. Harry hat Dir korrekten Code gepostet, Du hast ihn jedoch falsch verstanden.

if ($anzahl>0) {
  mach_was1();
  while($row = mysql_fetch_array($result)) {
    $anzahl = mysql_num_rows($result);
  }
} else {
  mach_was2();
}

Danke euch, jetzt wird je nachdem ob Ergebnisse zurückgegeben werden oder nicht die richtige Aktion ausgeführt, allerdings schreint die Aktion nicht richtig zu sein. Folgendes habe ich innerhalb der if-Abfrage stehen (anstatt mach_was2()):

echo 'ok';  <--- Nur zum überprüfen vorhanden
while($row = mysql_fetch_array($result)) {

$myquery = mysql_query("INSERT INTO 'album' ( 'name' , 'titel' , 'sichtbar' , 'datum' ) VALUES ('" . $_POST["gname"] . "', '" . $_POST["gtitel"] . "', '" . $gsichtbar . "', '" . $curdate . "')");

if($myquery == FALSE) {

echo "Konnte die MySQL-Abfrage nicht verarbeiten <br />\n";
    echo "MySQL-Antwort:".mysql_error();
    die();
  } else {
    echo 'Einfügen der Daten war erfolgreich.';
  }

}

"ok" wird ausgegeben, d.h. er springt mir in den richtigen Teil der vorhin besprochenen Schleife, die Abfrage wird allerdings nicht ausgeführt, ich finde keine neuen Datensätze in der Datenbank vor.
Wenn die Abfrage schief geht müsste doch eigentlich die Fehlermeldung ausgegeben werden.

Bei der Funktionsbeschreibung von mysql_query() steht ja folgendes:

Für alle anderen SQL Anweisungen ist der Rückgabewert von
mysql_query() im Erfolgsfall TRUE, im Fehlerfall FALSE. Ein
Rückgabewert ungleich FALSE bedeutet, dass die Anfrage gültig war
und vom Server ausgeführt werden konnte.

Hier wird aber anscheinend gar nix zurückgegeben, wie kann das sein?

Viele Grüße
Paul

--
Meine Photos:  http://www.rapunzeln.de
Meine Tribals: http://www.tribal-galerie.de