Wert auslesen, ausgeben und um eins erhöhen

Also der Code von mir funktioniert.

PHP:
if ($result['first_counter'] == "") {
    $new_query1 = mysql_query("INSERT INTO db_counter (first_counter) VALUES ('0')");
}

if ($result['slave_counter'] == "") {
    $new_query2 = mysql_query("INSERT INTO db_counter (slave_counter) VALUES ('0')");
}

Der Befehl zum eintragen wird erst ausgeführt wenn ich den Wert lösche.

Aber leider erstellt er mir mit diesem Code 2 Zeilen in die Datenbank.

Muss ich wohl doch mit ID´s arbeiten? Vielleicht ein praktisches Beispiel?
 
IDs sollte man eigentlich immer verwenden.
Natürlich funktioniert der Code von dir, aber mit UPDATE würdest du weiterhin nur einen Datensatz behalten ;) (ich weiß auch nicht wo das Problem liegt sich das bei Google eben anzuschauen)
SQL:
UPDATE db_counter SET first_counter = 0, slave_counter = 0 WHERE id = 1
Das WHERE kannst du natürlich weglassen, wenn du nur einen Datensatz hast.
 
Das habe ich doch verstanden!

Ich prüfe ob die Spalte leer ist ( == '' ) und wenn ja, dann soll die 0 eingetragen werden. Mit dem Update MySQL-Befehl macht er das aber nicht. Hat er gestern mit meinem Code der genau aussieht wie deiner aber ohne WHERE auch nicht gemacht.
 
Zuletzt bearbeitet:
Wenn du beim erstellen der Tabelle zB das angibst
SQL:
`first_counter` INT(10)  UNSIGNED NOT NULL DEFAULT 0
wird immer eine 0 eingetragen wenn das Feld leer ist, dann kannst du auf dein Update verzichten.
Wenn du auf NULL prüfen willst verwende
SQL:
UPDATE `db_counter` SET `first_counter`=0 WHERE `first_counter` IS NULL
 
Zuletzt bearbeitet von einem Moderator:
Mit dem Update MySQL-Befehl macht er das aber nicht. Hat er gestern mit meinem Code der genau aussieht wie deiner aber ohne WHERE auch nicht gemacht.

Das kann gar nicht sein. Dann liegt entweder gar kein Datensatz vor (sprich die Tabelle ist leer) oder der Query hatte einen Fehler.

Auch in PHPMyAdmin kannst du Standardwerte (Default) und NOT NULL angeben.
 
Ok habe ich nun gemacht aber die IF-Abfrage liefert immer noch TRUE zurück?

PHP:
$stmt = mysql_query( 'SELECT first_counter, slave_counter FROM db_counter' );
$result = mysql_fetch_array( $stmt, MYSQL_ASSOC );
 
if ($result['first_counter'] == "") {
    echo 'first_counter ist leer';
}

if ($result['slave_counter'] == "") {
    echo 'first_counter ist leer';
}
 
Zurück