Seite 1 von 1
Mehrere Datensötze gleichzeitig ändern
Verfasst: 18.02.2003 19:44
von hmueller
Hallo,
kurze Frage:
wie kann ich in der Datenbank (via phpMyAdmin oder per Abfrage) Werte in mehreren/allen Datensätzen gleichzeitig ändern, z.B. bei allen Usern (alternativ: User 4 bis User 100) den "user_level" von "1" auf "0" setzen?
Verfasst: 18.02.2003 20:27
von jasc
Bin mir nicht ganz sicher, aber ich denke, so könnte es gehen:
<?php
$dbhost = "Host";
$dbuser = "DBUser";
$dbpass = "Passwort";
$dbname = "DBName";
$table = "Tabelle";
$db = @mysql_pconnect($dbhost, $dbuser, $dbpass)
or die ("Verbindungsaufnahme mit MySQL-Server fehlgeschlagen!");
@mysql_select_db($dbname, $db)
or die ("Verbindungsaufnahme mit Datenbank fehlgeschlagen!");
$sql_update = "UPDATE $table SET user_level=\"0\" WHERE user_level=\"1\"";
$result = mysql_query($sql_update, $db);
if($result) {
echo"Daten erfolgreich aktualisiert!";
}
else {
echo "Bei dem Versuch, einen Datensatz zu aktualisieren, ist ein Fehler aufgetreten.<br>\n Fehler-Nummer:
<b>".mysql_errno($db)."</b><br>\nFehler-Ausgabe:
<b>".mysql_error($db)."</b>";
}
?>
Natürlich die entsprechenden Dinge anpassen (Variablen und so).
Also wenns völlig falsch ist, bitte nicht schlagen, hab schon ewig nichts mehr in PHP gemacht

.
Verfasst: 19.02.2003 08:07
von Pyramide
Man braucht aber nicht gleich ein ganzes Script für nur eine Abfrage schreiben, besonders wenn man sie nur ein- oder zweimal ausführen will...
Verfasst: 19.02.2003 13:48
von hmueller
... und direkt mit phpMyAdmin (ohne dieses "riesige" Skript) geht das nicht?
Verfasst: 19.02.2003 14:12
von Jacques
hi!
Hab zwar nicht so viel ahnung von PHP, aber dafür mit SQL. In phpMyAdmin kannst Du SQL-Befehle direkt rein schreiben.
Einfach so wie du's schon hattest:
UPDATE [tablename] SET user_level=0 WHERE user_level=1
oder wenn Du User 4 bis 100 haben willst dann den WHERE-Teil entsprechend ändern. Z.B.
WHERE (User_Nr >= 4) and (USER_NR <= 100)
Sollte eigentlich funzen.
Verfasst: 20.02.2003 11:16
von hmueller
Jacques hat geschrieben:Sollte eigentlich funzen.
...ja, klappt auch. Danke!
Nur noch eine kurze Frage: was muß ich denn eingeben, wenn das Feld "leer" sein soll?
Verfasst: 20.02.2003 12:02
von sunreise
dann mußt du die eigenschaft in der spalte NULL von NOT NULL auf NULL ändern!
Verfasst: 20.02.2003 15:26
von Jacques
Wenn Du nur einige mit null füllen willst dann lautet die Query
Update [TableName] set [Spalte] = null where ..... [und so weiter]
Wenn Du die Spalte bei neuanlage auf null setzen willst, dann gib keinen Standardwert vor. Die Null- Eigenschaft der Spalte muss auf "null" stehen, sonst gibt's ne Fehlermeldung.