[php/mysql]1 mysql_query mehrmals durchführen

djjlx

---???---
ID: 62937
L
9 Mai 2006
599
21
Hy!

Hab ein Problem!

Ich würde gerne ein mysql_query mehrmals durchführen lassen.
Den Wert für das mehrmals kommt mit einer variable ($anzahl)

Das heißt ist der Wert der Var $anzahl 5 , das dass mysql_query jetzt 5 mal durchgeführt wird.

Geht so etwas?

LG
 
Was denn für einen Query?
Macht eigentlich ja nur bei INSERT wirklich Sinn würd ich mal behaupten, oder? Wenn ja, dann muss ich suchen, wenn kein INSERT sollte sich das so lösen lassen..

Also - poste einfach mal den Query!
 
wie astrodan sagt, query wäre gut zu wissen, ansonsten gäbs da die möglichkeit:

PHP:
for($i=0,$i<$anzahl;$i++)
Queryausführung
 
ja richtig ist ein INSERT

INSERT INTO token (token, datum) VALUES ('1', '$datum')

Ziel ist es wenn der Wert der VAr $anzahl 5 ist das in der db 5 gleiche zeilen drinnen stehen.
 
Sry, wenn Doppelpost, aber nen Edit highlighted den Thread net...

INSERT INTO token (token, datum) VALUES ('1', '$datum')

Code:
INSERT INTO token (token, datum) VALUES ('1', '$datum'), ('1', '$datum'), ('1', '$datum'), ('1', '$datum'), ('1', '$datum')

Btw.: Zahlen als String einzufügen is merkwürdig - also wenn das Feld `token` vom Typ INT (o.ä.) ist würde ich (1, '$datum') vorschlagen.
 
Sry, wenn Doppelpost, aber nen Edit highlighted den Thread net...



Code:
INSERT INTO token (token, datum) VALUES ('1', '$datum'), ('1', '$datum'), ('1', '$datum'), ('1', '$datum'), ('1', '$datum')

Btw.: Zahlen als String einzufügen is merkwürdig - also wenn das Feld `token` vom Typ INT (o.ä.) ist würde ich (1, '$datum') vorschlagen.

ja ist ein INT

Code:
INSERT INTO token (token, datum) VALUES ('1', '$datum'), ('1', '$datum'), ('1', '$datum'), ('1', '$datum'), ('1', '$datum')
Das trifft zu wenn der wert 5 ist aber der wert kann sich ja ändern genau gesagt zwischen 1 und 5.
 
Code:
INSERT INTO token (token, datum) VALUES ('1', '$datum'), ('1', '$datum'), ('1', '$datum'), ('1', '$datum'), ('1', '$datum')
Das trifft zu wenn der wert 5 ist aber der wert kann sich ja ändern genau gesagt zwischen 1 und 5.

PHP:
$query = 'INSERT INTO `token` (`token`, `datum`) VALUES '.substr(str_repeat("('1', '$datum'),", $anzahl), 0, -1);

ungetestet
 
wie astrodan sagt, query wäre gut zu wissen, ansonsten gäbs da die möglichkeit:

PHP:
for($i=0,$i<$anzahl;$i++)
Queryausführung


Nochmal zu diesen Befehl!

Da kann ich zb. 2 Queryausführungen hintereinander setzt
die die Ausführung läuft so

1 Query
2 Query

1 Query
2 Query

usw. je nach wert der VAR $anzahl

Quasi wie eine Schleife

Hab ich das so richtig verstanden?
 
ja die schleife wird $nazahl mal durchgeführt. wenn du mehrere anweisungen hast, dann halt die geschweifte Klammer drum.


PHP:
              for($i=0,$i<$anzahl;$i++){ 
Aktion1;
aktion2;
aktion3;

}
 
Hmm..

PHP:
mysql_query(str_repeat($query.';', $anzahl));
Wäre das nicht schneller? Wenn das result unwichtig ist...

naja, also wenn ich mehrere Querys gleichzeitig bei mir ausführe bekomme ich ne fehlermeldung.


HTML:
INSERT INTO test set wert='xyz';INSERT INTO test set wert='xyz'
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 ';INSERT INTO test set wert='xyz'' at line 1

in phpmyadmin kann ich die so ausführen. Könnte aber auch an meiner DBKlasse
 
in phpmyadmin kann ich die so ausführen. Könnte aber auch an meiner DBKlasse

Ahso, joa, kann sein das mysql_query eigentlich nur für einen Query gedacht ist, nie ausprobiert. Ich selber hab mir das auch nur aus phpmyadmin zusammengebastelt, weil ich von da weiß, dass es geht. Vllt. trennt phpmyadmin auch mithilfe eines explode(';', $query) und führt die einzeln aus...
 
mysql_query() kann immer nur eine Query ausführen (s. auch mysqli_multi_query()).

Bei INSERT-Queries empfiehlt es sich, diese auf einmal zu senden und nicht für jeden Datensatz einzeln. Ich hatte neulich mal so was in der Art probiert und bei größeren Mengen macht das schon mal n Unterschied zwischen Sekunden und Minuten ;)
 
Funktioniert leider nicht :-(

Fehlermeldung:
Parse error: parse error, unexpected ')', expecting ';' in /usr/wwwroot/test.php on line 137


Zeile 137: for($i=0,$i<$anzahl;$i++){

?????