UPDATE funktioniert nicht

Tatsache da ist was verdreht, eine Ausgabe hätte das aber auch klären können ;)
PHP:
$email = $_POST["entfaenger"]; 
foreach($email as $emailaddress){
    $eintrag = "UPDATE jos_chronoforms_buchungen SET `bezahlt`='1' WHERE `email`='".$emailaddress."'";
    mysql_query($eintrag);
    mail($emailaddress, $betreff, $text, $from);
    
}
 
Warum wird hier wild Rätsel geraten? Erstmal die offensichtlichen Dinge abchecken. Bau eine mysql_error()-Fehlerbehandlung ein und prüfe die Fehlermeldung. Vielleicht wird dir dann selbst klar, was nicht funktioniert. Ansonsten noch mal hier nachfragen. Achso, diese Zeile umbauen:

PHP:
mysql_query($eintrag);

in

PHP:
mysql_query($eintrag) or die(mysql_error());
 
Hi
mach mal das Simikolon am Ende raus. Gibt es überhaupt die Email in der Tabelle? Steht in $email überhaupt was drin?
Lass dir mal den Query ausgeben.

Auf sowas hab ich gewartet ^^ Ich weiß, dass viele das Semikolon weglassen, aber von sich aus braucht MySQL ein Semikolon am Ende. Wenns fehlt, dann fügt PHP zwar eins an, aber ich persönlich rate von solchen Spielchen ab, da das auch mal in die Hose gehen kann.
 
Teilweise kann es mit einem Simikolon allerdings zu Fehlern kommen ;) wobei wir den eigentlichen Fehler ja schon gefunden haben.
 
Ja, z.B. bei MsSQL, aber da würde auch ` zu Fehlern führen, von daher auch egal xD Aber war ja auch nur ne Begründung, warum ich das Semikolon drin hatte ;)
 
Leider funktioniert es noch immer nicht :( Ich habe mir jetzt die $email ausgeben lassen und da werden die ganzen Mailadressen ganz normal ausgegeben! Und übrigens wenn ich den Update befehl direkt in phpmyadmin eingebe funktioniert das ganz! Aber die Anmeldedaten habe ich jetzt auch noch mal durchgeschaut und den passen!

Bekomme leider noch immer keine Fehlermeldung
 
Zuletzt bearbeitet:
Also folgender Code funktioniert bei mir ohne Probleme und die Datenbank wird auch aktualisiert:

PHP:
<?php

error_reporting(E_ALL);

$emails_in_array = array();
$emails_in_array[] = "test@gmx.net";
$emails_in_array[] = "test2@gmx.net";


mysql_connect("localhost", "php", "php") or die(mysql_error());
mysql_select_db("php") or die(mysql_error());

$email = $_POST["entfaenger"];
foreach($emails_in_array as $key => $value)
{
    $eintrag = "UPDATE `jos_chronoforms_buchungen` SET `bezahlt` = 1 WHERE `email` = '" . $value . "';";
	echo $eintrag . "<br />\n";
    mysql_query($eintrag) or die(mysql_error());
//    mail($email, $betreff, $text, $from);  
}


mysql_close();
?>
Ist natürlich nur für Testzwecke. Die ganzen die-Anweisungen sollten im produkten Code nicht mehr vorhanden sein, also die Fehler am besten in einer Variable (bei mir meist $_ERROR) abspeichern.
 
Zuletzt bearbeitet:
Wenn du $key nicht brauchst kannst du auch nur foreach($emails_in_array as $value) schreiben ;) Wozu eine Variable initialisieren wenn du sie gar nicht benutzt?
 
Juhu es funktioniert :D Habe jetzt nur noch ein trim($value) eingefügt

Und Danke für die Hilfe
 
Zuletzt bearbeitet:
Zurück