Mehrere Datensötze gleichzeitig ändern

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
hmueller
Mitglied
Beiträge: 458
Registriert: 30.07.2002 10:39
Wohnort: Neuötting
Kontaktdaten:

Mehrere Datensötze gleichzeitig ändern

Beitrag 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?
Benutzeravatar
jasc
Ehemaliges Teammitglied
Beiträge: 2497
Registriert: 24.05.2001 02:00
Wohnort: Hergensweiler bei Lindau/B

Beitrag 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 :D.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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...
hmueller
Mitglied
Beiträge: 458
Registriert: 30.07.2002 10:39
Wohnort: Neuötting
Kontaktdaten:

Beitrag von hmueller »

... und direkt mit phpMyAdmin (ohne dieses "riesige" Skript) geht das nicht?
Jacques
Mitglied
Beiträge: 55
Registriert: 05.03.2002 01:00
Wohnort: Celle

Beitrag 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.
Gruss,

Jacques
hmueller
Mitglied
Beiträge: 458
Registriert: 30.07.2002 10:39
Wohnort: Neuötting
Kontaktdaten:

Beitrag 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?
Benutzeravatar
sunreise
Mitglied
Beiträge: 49
Registriert: 22.01.2003 12:15
Wohnort: Grillenberg

Beitrag von sunreise »

dann mußt du die eigenschaft in der spalte NULL von NOT NULL auf NULL ändern!
Jacques
Mitglied
Beiträge: 55
Registriert: 05.03.2002 01:00
Wohnort: Celle

Beitrag 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.
Gruss,

Jacques
Antworten

Zurück zu „Coding & Technik“