mysql_affected_rows()

soa

Erfahrenes Mitglied
Hallo,

ich habe ein kleines Problem mit der o.g. Funktion.

Es geht darum, dass über ein Formular verschiedene Änderungen eines Datensatzes über
mehrere Tabellen vorgenommen werden. Die Änderungen werden auch alle ausgeführt.

Zuerst steht also eine große Update Anweisung. Auf diese folgen u.U. Select Delete und Insert Anweisungen.

Am Ende der Transaktion folgt jene Abfrage:

PHP:
if (mysql_affected_rows($db))
       {
         $danke = rawurlencode ("Der Kunde wurde erfolgreich ge‰ndert.");
         printf ("Veränderte Datensätze: %d\n", mysql_affected_rows());
		 mysql_query("COMMIT");
         echo '<head><meta http-equiv="refresh" content="0;    URL=index.php?danke='.$danke.'"></head>'; 
       }
       else
       {
       $fehler = rawurlencode ("Die Änderungen konnten nicht durgeführt werden.");
       printf ("Veränderte Datensätze: %d\n", mysql_affected_rows());
         echo '<head><meta http-equiv="refresh" content="0;    URL=index.php?danke='.$fehler.'"></head>'; 
       }

Hierbei wird trotz erfolgreicher Änderung

Veränderte Datensätze: 0 ausgegeben.

Das verstehe ich nicht so ganz. Über Hilfen wäre ich sehr dankbar.

Gruß
SOA
 
Wird zur danke-Seite weitergeleitet, oder zur Fehlerseite?

Speichere direkt nach dem Query die Anzahl der betroffenen Datensätze in eine Variable, und benutz diese dann bei der Ausgabe.

PHP:
mysql_query("...");
$num_affected = mysql_affected_rows();

if ($num_affected > 0) {

printf ("Veränderte Datensätze: %d\n", $num_affected); 

} else {
.
.
.
}
 
Zuletzt bearbeitet:
Zurück