Taraen hat geschrieben:
Hallo!
wenn $result Null ist, soll INSERT INTO ausgeführt werden. Sollte es aber einen Wert zurückliefern, soll der Datensatz per UPDATE aktualisiert werden... Allerdings funktioniert es nicht so, wie ich mir es vorgestellt hatte....

Was ist hier falsch?
[php]
#...
[/php]
"$result" enthält natürlich eine valide MySQL-Resource und ist deshalb garantiert nicht leer.
Ein Beispiel, wie man das machst, unter anderem auch in meiner "Ausführlichen Biographie" zu finden für die 1.1.x. Übrigens achte bitte darauf, die Werte zuerst zu entschärfen, bevor du sie in den Query einbindest.
[php]# Aus der Datenbank ein Satz holen...
$result = db_query('SELECT id,bio FROM longbio WHERE id ="'.mysql_real_escape_string(stripslashes($_GET['char'])).'"');
if(db_num_rows($result) === 0) {
# Kein Datensatz
db_query('INSERT INTO `longbio` SET `id` = "'.mysql_real_escape_string(stripslashes($session['user']['login'])).'", `bio` = "'.mysql_real_escape_string(stripslashes($_POST['text'])).'"');
}
else {
# Ein oder mehrere Datensätze
db_query('UPDATE `longbio` SET `bio` = "'.mysql_real_escape_string(stripslashes($_POST['text'])).'" WHERE `id` = "'.mysql_real_escape_string(stripslashes($_GET['char'])).'"');
}[/php]
Alternativ, um einen Query zu sparen:
[php]# Updaten
db_query('UPDATE `longbio` SET `bio` = "'.mysql_real_escape_string(stripslashes($_POST['text'])).'" WHERE `id` = "'.mysql_real_escape_string(stripslashes($_GET['char'])).'"');
if(db_affected_rows() === 0) {
# Kein aktualisierter Datensatz; Kein Datensatz vorhanden; Also erstelle mir einen
db_query('INSERT INTO `longbio` SET `id` = "'.mysql_real_escape_string(stripslashes($session['user']['login'])).'", `bio` = "'.mysql_real_escape_string(stripslashes($_POST['text'])).'"');
}[/php]