hallo, ich habe ein problem, und möchte gern einfach mal wissen, ob ich schon alle logischen möglichkeiten der fehlersuche ausgeschöpft habe.
Hallo.
Ich habe mir neben den hier angesprochenen Möglichkeiten zur Fehlersuche angewöhnt, mit mysql_affected_rows() zu prüfen, ob und wieviele Datensätze eingetragen wurden.
Das macht man zum Beispiel, wenn das Skript ein Bild in ein Bild-Table nur dann eintragen soll, wenn auch die Benutzerdaten im Benutzertable korrekt eingetragen worden sind.
Noch ein kleiner Tip: mysql_connect braucht pro Skript nur einmal verwendet zu werden. Jedesmal, wenn es wieder benutzt wird, wird die gleiche Verbindung zur Datenbank benutzt, wie im Skript vorher, PHP merkt sich nämlich die Verbindung anhand einer Kennung.
Noch ein Tip: Du hast Dich jetzt sicher mit UPDATE befasst. Die Syntax für ein insert kannst Du ähnlich gestalten:
$statement = "insert into kategorie set kategorie_nr='$kategorie_nr', kategorie_art='$kategorie_art', kategorie='$kategorie'";
Bei größeren Applikationen muss man dann nur noch update und insert into vertauschen:
$statement = "update kategorie set kategorie_nr='$kategorie_nr', kategorie_art='$kategorie_art', kategorie='$kategorie' where id='$id'";
Bleibt natürlich jedem überlassen, wie man es schreibt :-)
Hier der komplette Codeabschnitt mit affected_rows();
include ("../../lib/mysql.php");
this connection will be used in the whole application
$conn = mysql_connect($host, $user, $passwd);
$db = mysql_select_db($database);
Anlegen der Kategorie
if ($action == "save") {
$statement = "insert into kategorie set kategorie_nr='$kategorie_nr'.......preis='$preis'";
$execute = mysql_query($statement);
$erfolg = mysql_affected_rows();
if ($erfolg == -1) {
$meldung = "FEHLER: Die Kategorie konnte nicht angelegt werden.<br>Die Datenbank meldet: ".mysql_errno().":".mysql_error()."<br>";
}
if ($erfolg == 1) {
$meldung = "Die Kategorie wurde erfolgreich angelegt.<br>";
$statement2 = "insert into relation_kat set id_kat=LAST_INSERT_ID(), id_supermakler='$id_makler'";
$execute2 = mysql_query($statement2);
$erfolg2 = mysql_affected_rows();
if ($erfolg2 == -1) {
$meldung2 = "FEHLER: Die Bezugsdaten der Kategorie konnten nicht angelegt werden.<br>Die Datenbank meldet: ".mysql_errno().":".mysql_error()."<br>";
}
if ($erfolg2 == 1) {
$meldung2 = "Die Bezugsdaten der Kategorie wurden erfolgreich angelegt.<br>";
}
}
}
Viele Grüße Lars