Hallo,
ich weiss nicht, ob ich hier richtig bin, es geht aber um php und mysql und die lösung ist bestimmt wieder eine anfängersache, nur komme ich nicht drauf :cry:
also, folgendes script holt mir 10 datensätze aus einer db, sortiert diese zufällig und schreibt dann die 10 datensätze in eine neue tabelle, in der durch das script eine spalte angelegt wird.
das funzt so weit auch einwandfrei:
nun mein problem:
beim letzten teil
hat die db eine struktur mit einer spalte für die id, auto increment.
alle weiteren spalten werden durch das script eingefügt.
problem, lasse ich das script laufen, werden die ersten 10 datensätze korrekt mit id von 1-10 eingefügt. läuft es zum zweiten mal fügt es leider, logischerweise die daten bei 11ä-20 ein und 1-10 bleiben in der jeweiligen spalte leer.
aber genau das will ich nicht!!!
ich will, dass die daten immer bei 1 beginnend eingefügt werden!
ich habe auch schon mit "update" rumprobiert, es aber nicht geschafft, da wurde immer das selbe ergebnis eingetragen.
in der hilfe und im manual finde ich auch keine lösung.
vielleicht weiss einer von euch weiter... ich steh auffem schlauch :cry:
*und noch mal sorry, aber es ist ja ein php prob (schleife?) und ein mysql prob, oder?
ich weiss nicht, ob ich hier richtig bin, es geht aber um php und mysql und die lösung ist bestimmt wieder eine anfängersache, nur komme ich nicht drauf :cry:
also, folgendes script holt mir 10 datensätze aus einer db, sortiert diese zufällig und schreibt dann die 10 datensätze in eine neue tabelle, in der durch das script eine spalte angelegt wird.
das funzt so weit auch einwandfrei:
PHP-Code:
#####neue spalte beschreiben#####
$newcol=date("dmyHis");
$newcolb="d".$newcol;
echo$newcolb;
echo"<br>";
mysql_query("ALTER TABLE table ADD ".$newcolb." VARCHAR(10) NOT NULL");
#####------1.hälfte
// auslesen der ersten 10 datensaetze in array
$query = mysql_query("SELECT userid FROM table ORDER BY kriterium DESC LIMIT 0,10 ");
if($query) {
$buffer = array();
while ($row = mysql_fetch_assoc($query)) {
$buffer[] = $row['userid'];
}
//shuffeln
srand ((float)microtime()*1000000);
shuffle ($buffer);
print_r($buffer);
}
//daten in db schreiben
$a = $buffer;
foreach ($a as $v) {
mysql_query("INSERT INTO table (".$newcolb.") VALUES ('".$v."')");
}
beim letzten teil
//daten in db schreiben
alle weiteren spalten werden durch das script eingefügt.
problem, lasse ich das script laufen, werden die ersten 10 datensätze korrekt mit id von 1-10 eingefügt. läuft es zum zweiten mal fügt es leider, logischerweise die daten bei 11ä-20 ein und 1-10 bleiben in der jeweiligen spalte leer.
aber genau das will ich nicht!!!
ich will, dass die daten immer bei 1 beginnend eingefügt werden!
ich habe auch schon mit "update" rumprobiert, es aber nicht geschafft, da wurde immer das selbe ergebnis eingetragen.
in der hilfe und im manual finde ich auch keine lösung.
vielleicht weiss einer von euch weiter... ich steh auffem schlauch :cry:
*und noch mal sorry, aber es ist ja ein php prob (schleife?) und ein mysql prob, oder?
EDIT:
nimm bitte die [ php ] statt der [ code ]-tags, dann wird der soruce auch farbig hervorgehoben, und damit besser lesbar. wahsaga
Kommentar