for schleife - wie richtig????
berni
- php
0 wahsaga0 Axel Richter0 Ilja
hi @ all!
ich hab eine bitte: gestern war jemand so nett und hat mir eine 'for-schleife' vogeschlagen, wenn ich bei einem cms (tabelle besteht aus 2 spalten: 'ID' und 'inhalt')nicht den inhalt ändern will, sondern 299 zeilen unter ID anlegen will, ich hab da auch progr. - aber,es geht zwar durch bis zum echo, ohne fehlermeldung >>> es bleibt aber nur ID 300 angelegt, 1 - 299 wurden nicht angelegt, bitte was hab' ich falsch gemacht?????
hier meine schleife:
<?require ("connect.php");
for($i = 0; $i < 300; $i++ )
mysql_query('INSERT INTO hp (ID) VALUES ($i)');
echo "Alle Seiten angelegt";
?>
liebe grüße
berni
hi,
es bleibt aber nur ID 300 angelegt, 1 - 299 wurden nicht angelegt, bitte was hab' ich falsch gemacht?????
for($i = 0; $i < 300; $i++ )
mysql_query('INSERT INTO hp (ID) VALUES ($i)');
du überschreibst jedes mal in dem datensatz mit der id (ID) den wert mit deinem aktuellen zählerstand.
du scheinst noch gar nicht verstanden zu haben, was du da eigentlich tust ...
gruss,
wahsaga
du scheinst noch gar nicht verstanden zu haben, was du da
===> Scheint so ;-), aber deshalb frag ich ja hier, wenn ichs behirnt hätte, würde ich ja da nicht fragen!
ich fürchte i < 300 ist auch 1 bzw.0, müsste es nicht <=299
liebe grüße
berni
Hallo wahsaga,
mysql_query('INSERT INTO hp (ID) VALUES ($i)');
du überschreibst jedes mal in dem datensatz mit der id (ID) den wert mit deinem aktuellen zählerstand.
du scheinst noch gar nicht verstanden zu haben, was du da eigentlich tust ...
Du?
Bitte zeige mir _eine_ SQL Query, bei der ein INSERT einen vorhandenen Datensatz _überschreibt_ ;-))
viele Grüße
Axel
hi,
Bitte zeige mir _eine_ SQL Query, bei der ein INSERT einen vorhandenen Datensatz _überschreibt_ ;-))
sorry, wohl zu oberflächlich gelesen.
gruss,
wahsaga
DANKE alles klappt, Ihr habt mir super geholfen!!!
yo,
du scheinst noch gar nicht verstanden zu haben, was du da eigentlich tust ...
das gilt scheinbar für uns alle. liegt vielleicht daran, das wir doch nur menschen sind und fehler machen. aber manche sind doch gleicher...
grüße
Ilja
Hallo,
hier meine schleife:
<?require ("connect.php");
for($i = 0; $i < 300; $i++ )
Hier wird i, solange kleiner als 300 immer um eins erhöht. Am Ende ist i dann 300.
mysql_query('INSERT INTO hp (ID) VALUES ($i)');
Das wird nur einmal ausgeführt, mit i = 300.
echo "Alle Seiten angelegt";
?>
for($i = 0; $i < 300; $i++ ) {
mysql_query('INSERT INTO hp (ID) VALUES ($i)');
}
echo "Alle Seiten angelegt";
Oder die andere Methode, die in http://www.php.net/manual/de/control-structures.for.php beschrieben ist, wäre wahrscheinlich besser. Noch besser wäre allerdings zu überlegen, ob eine solche Datensatzfüllmethode überhaupt notwendig ist.
viele Grüße
Axel
Hallo,
hier meine schleife:
<?require ("connect.php");
for($i = 0; $i < 300; $i++ )
Hier wird i, solange kleiner als 300 immer um eins erhöht. Am Ende ist i dann 300.
mysql_query('INSERT INTO hp (ID) VALUES ($i)');
Das wird nur einmal ausgeführt, mit i = 300.
echo "Alle Seiten angelegt";
?>for($i = 0; $i < 300; $i++ ) {
mysql_query('INSERT INTO hp (ID) VALUES ($i)');
}
echo "Alle Seiten angelegt";Oder die andere Methode, die in http://www.php.net/manual/de/control-structures.for.php beschrieben ist, wäre wahrscheinlich besser. Noch besser wäre allerdings zu überlegen, ob eine solche Datensatzfüllmethode überhaupt notwendig ist.
viele Grüße
Axel
hi axel!
Ich hab leider keinen plan, auch der URL half nix (newbie php >> mach das erst seit ca. 1 monat) - ich will 299 zeilen anlegen, ohne vorerst nicht 'inhalt', nur 299 zeilen in der spalte ID. gestern kam der vorschlag hier eine for-schleife zu machen. die tabelle wurde mit auto-increment angelegt.
Hallo,
Ich hab leider keinen plan, auch der URL half nix (newbie php >> mach das erst seit ca. 1 monat)
Ja und mit den geschweiften Klammern also:
for($i = 0; $i < 300; $i++ ) {
mysql_query('INSERT INTO hp (ID) VALUES ($i)');
}
echo "Alle Seiten angelegt";
geht es immer noch nicht?
- ich will 299 zeilen anlegen, ohne vorerst nicht 'inhalt', nur 299 zeilen in der spalte ID. gestern kam der vorschlag hier eine for-schleife zu machen. die tabelle wurde mit auto-increment angelegt.
Wenn ID Auto-Increment ist, musst Du allerdings beim INSERT einer anderen Spalte einen Wert zuweisen, weil ID dann eben _automatisch_ weitergezählt wird.
Die Frage bleibt aber: Wozu werden in einer Datenbank-Tabelle leere Datensätze benötigt? Füge diese doch dann ein, wenn Du die notwendigen Werte kennst.
viele Grüße
Axel
Hallo,
Ilja hat natürlich auch Recht. In single-Quotes stehende WVariablen werden natürlich nicht durch ihre Werte ersetzt.
for($i = 0; $i < 300; $i++ ) {
mysql_query("INSERT INTO hp (ID) VALUES ($i)");
}
echo "Alle Seiten angelegt";
ist also richtiger.
http://www.php.net/manual/de/language.types.string.php
viele Grüße
Axel
yo,
for($i = 0; $i < 300; $i++ )
Hier wird i, solange kleiner als 300 immer um eins erhöht. Am Ende ist i dann 300.
mysql_query('INSERT INTO hp (ID) VALUES ($i)');
Das wird nur einmal ausgeführt, mit i = 300.
wenn nach einer schleife nur eine befehlszeile folgt, dann braucht man keine klammerung mit {...}. insofern wird die mysql_query auch merfach ausgeführt, nur scheinbar fehlerhaft, allerdings ohne fehlermeldung.
Ilja
yo,
mysql_query('INSERT INTO hp (ID) VALUES ($i)');
versuch es mal mit " anstelle von '
mysql_query("INSERT INTO hp (ID) VALUES ($i)");
Ilja