Update von Daten in einem bestimmten Bereich
Paule
- datenbank
0 Vinzenz Mai
Tach,
ich grüble schon seit einer Weile darüber, wie ich mehrere Zeilen der MySql-Datenbank mittels PHP mit dem gleichen Wert überschreiben kann.
Also im Bereich von Nummer 1-10 soll die Spalte Wert den "Wert1" erhalten.
Die Nummern $nummer_beginn und $nummer_ende sowie der $wert werden über ein Formular eingegeben.
Hilft mir dabei eine for-Schleife nach diesem Muster
$_x = $nummer_beginn;
$_y = $nummer_ende;
for($x=$_x;$x<$_y;$x++){
$sql= " INSERT INTO spiel
( nummer )
VALUES ($x)";
Die würde ja den Wert der Nummer erhöht. Das funktioniert. Jetzt soll aber im gleichen Zuge der Wert1 so lange eingetragen werden, wie die Schleife läuft.
Geht das irgendwie?
Geht das auch mit der Update Anweisung?
Hallo,
ich grüble schon seit einer Weile darüber, wie ich mehrere Zeilen der MySql-Datenbank mittels PHP mit dem gleichen Wert überschreiben kann.
zum Überschreiben nutzt man das Statement, womit Dein Thema beginnt, d.h. mit der UPDATE-Anweisung.
Also im Bereich von Nummer 1-10 soll die Spalte Wert den "Wert1" erhalten.
Bei einem Intervall kannst Du den BETWEEN-Operator in der WHERE-Klausel verwenden, sind es einzelne Werte, die Du in einer Liste zur Verfügung hast, so nutze IN.
Hilft mir dabei eine for-Schleife nach diesem Muster
In Schleifen SQL-Anweisungen abzusetzen, ist meist keine gute Idee.
$sql= " INSERT INTO spiel
UPDATE, nicht INSERT.
( nummer )
VALUES ($x)";
Hier fehlt die kontextgerechte Behandlung, siehe die in https://forum.selfhtml.org/?t=188378&m=1253771 verlinkte Review-Version eines neuen Artikel für SELFHTML aktuell von dedlfix.
Freundliche Grüße
Vinzenz
Vinzenz Danke für Deine Antwort,
ich werde mal dieses versuchen:
$sql= " INSERT INTO spiel WHERE nummer BETWEEN $_x AND $_y (wert) VALUES ($wert)";
Kann das funkionieren?
Moin!
Vinzenz Danke für Deine Antwort,
ich werde mal dieses versuchen:
$sql= " INSERT INTO spiel WHERE nummer BETWEEN $_x AND $_y (wert) VALUES ($wert)";
Kann das funkionieren?
Nein. INSERT fügt neue Datensätze in die Tabelle ein, es kennt kein WHERE.
- Sven Rautenberg
mysql_select_db($database_vezzDB, $vezzDB);
$query_sql = "SELECT * FROM gewinnspiel WHERE gewinnummer BETWEEN 1 AND 30";
$sql = mysql_query($query_sql, $vezzDB) or die(mysql_error());
$row_sql = mysql_fetch_assoc($sql);
$totalRows_sql = mysql_num_rows($sql);
Sollte dann doch funktionieren oder??
Diese Meldung kommt:
Fehler: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #3' at line 1
Die Werte 1 und 30 sollen aber veränderlich sein. Wie formuliere ich die Variablen? '$_x','_y' oder einfach $_x,$_y?
Moin!
mysql_select_db($database_vezzDB, $vezzDB);
$query_sql = "SELECT * FROM gewinnspiel WHERE gewinnummer BETWEEN 1 AND 30";
$sql = mysql_query($query_sql, $vezzDB) or die(mysql_error());
$row_sql = mysql_fetch_assoc($sql);
$totalRows_sql = mysql_num_rows($sql);
>
> Sollte dann doch funktionieren oder??
>
> Diese Meldung kommt:
>
> `Fehler: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #3' at line 1`{:.language-html}
Wo ist Zeile 1? Da ist der Fehler in der Form, dass du vermutlich die Variable mit der DB-Connection als Query-String übergeben hast.
> Die Werte 1 und 30 sollen aber veränderlich sein. Wie formuliere ich die Variablen? '$\_x','\_y' oder einfach $\_x,$\_y?
Du tust in deinem Codeabschnitt oben nichts, was mit deinem Originalproblem zu tun hat, also "Update von Daten in einem bestimmten Bereich". Hängst du an dem Problem immer noch, oder bist du schon einen Schritt weiter?
- Sven Rautenberg