-
Hallo!
Ich habe ein kleines Problem mir einer Datenbankabfrage.
Ich brauch einen Zufallsgenerator, den ich mit mehreren Werten füttern kann.
Das heißt, der Zufallsgenerator soll aus einer vorgegeben Liste an IDs auswählen.
Kleines Beispiel:
Tabelle:
Id:
------
1
2
3
4
5
...
So. Jetzt soll der Zufallsgenerator zufällig zwischen 2 und 5 auswählen.
Also entweder 2 oder 5.
Ich hab bisjetzt das:
Wenn in der Whileschleife 16, 17 und 18 steht, bekomm ich beim Zufall unten entweder keinen Wert 1 oder 6.PHP-Code:$test_res = mysql_query("SELECT * FROM aufgaben_abfolge WHERE loesungsid = $_POST[loesung_radio]");
$count = mysql_num_rows($test_res);
$test2 = mysql_fetch_assoc(mysql_query("SELECT * FROM aufgaben_abfolge WHERE loesungsid = $_POST[loesung_radio]"));
while($test = mysql_fetch_assoc($test_res)) {
echo $test[naechsteaufgabeid]." naechste id<br />";
}
echo $count." anzahl<br />";
echo $test2[naechsteaufgabeid][rand(0,$count - 1)]." aus array";
Das macht allerdings überhaupt keinen Sinn, weil diese Zahlen so nicht in der Tabelle stehen.
Danke
mfg
Azubis
-
05.11.08 15:00 #2
Warum schiebst du die Arbeit nicht auf MySQL?
Code sql:1
SELECT `field` FROM `table` ORDER BY RAND() LIMIT 1
Und schon hast du einen generischen Eintrag aus der Tabelle.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Dass löst das Problem glaube ich aber nicht, da dann irgend ein Zufall generiert wird. Oder täusch ich mich.
Wenn ich z.B. 10 Id's hab, will ich einen Zufall aus 3,7 und 8.
Bei dir würde er ja einen Zufall aus 1-10 machen.
mfg
Azubis
-
05.11.08 15:12 #4
Mein Fehler, aber das geht auch.
Code sql:1 2 3 4 5
SELECT `field` FROM `table` WHERE `id` IN (3, 7, 8) ORDER BY RAND() LIMIT 1
KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Wenn du mir jetzt noch sagen kannst, wie ich den Inhalt einer While Schleife in die Klammer mit 3, 7, 8 reinbekomme, ist mein Problem gelöst

mfg
Azubis
-
05.11.08 16:05 #6
Woher kommen denn deine Zahlen?
Aus einem Formular?KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Die Zahlen kommen aus einer Datenbank.
Per Formular übertrage ich die LösungsID. Mithilfe dieser finde ich aus der Datenbank die passenden NächsteaufgabeID raus. (Wenn es mehrmals die selbe LösungsID gibt, kommt der Zufallsgenerator zum einsatz, weil eine nächste AUfgabe ausgewählt werden muss.
Rein theoretisch müsste es so aussehen. Aber das ist ja leider nicht so einfach möglich :P
PHP-Code:$test_res = mysql_query("SELECT * FROM aufgaben_abfolge WHERE loesungsid = $_POST[loesung_radio]");
$lala = mysql_query("SELECT * FROM aufgaben_abfolge WHERE naechsteaufgabe IN (while($test = mysql_fetch_assoc($test_res)) {echo $test[naechsteaufgabeid]." ,";}) ORDER BY RAND() LIMIT 1");
-
05.11.08 16:46 #8
Doch, das geht sogar

Code sql:1 2 3 4 5 6 7 8 9
SELECT `field` FROM `aufgaben_abfolge` WHERE `id` IN ( SELECT `id` FROM `aufgaben_abfolge` WHERE `loesungsid` = '1' ) ORDER BY RAND() LIMIT 1
Du solltest unbedingt deine Queries mit mysql_real_escape_string() maskieren, um SQL Injektionen vorzubeugen.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Ahh klar.
Unterabfragen. Hab ich total vergessen...
Aber irgendwie will das nicht wie ich...
Eigentlich sollte in diesem Fall ein Zufall zwischen 13 und 14 erzeugt werden.PHP-Code:$lala = mysql_query("SELECT * FROM aufgaben_abfolge WHERE naechsteaufgabeid IN (SELECT * FROM aufgaben_abfolge WHERE loesungsid = $_POST[loesung_radio]) ORDER BY RAND() LIMIT 1 ");
echo $lala["naechsteaufgabeid"]."AHHHHHH";
Als Ergebnis kommt aber nichts raus
Er gibt einfach nichts aus.
Meine Konzentration ist aber jetzt auch am Ende.
Klar escape ich das noch. Solang etwas aber noch nicht funktioniert, mach ich sowas noch nicht, das die Fehlerquelle so klein wie möglich gehlaten werden kann.
Trotzdem danke.
mfg
Azubis
-
05.11.08 17:00 #10
Und wo führst du das Query aus?

PHP-Code:$query = mysql_query("SELECT * FROM aufgaben_abfolge WHERE naechsteaufgabeid IN (SELECT * FROM aufgaben_abfolge WHERE loesungsid = '".$_POST['loesung_radio']."') ORDER BY RAND() LIMIT 1 ");
$result = mysql_fetch_assoc($query);
echo $result["naechsteaufgabeid"]."AHHHHHH";
KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Boah... Ich sag ja. Meine Konzentration.
Wird Zeit das ich Feierabend mache :P
Jetzt bringt er noch den typischen Fehler:
Code :1
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in ...
Aber das werde ich hoffentlich noch selbst finden!
Danke
mfg
Azubis
-
05.11.08 17:21 #12
mysql_error() hilft da ungemein
KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Das ist jetzt echt seltsam.Code :
1
Operand should contain 1 column(s)
-
05.11.08 17:31 #14
Mein Fehler.
Code sql:1
SELECT * FROM
Da darf kein * hin, sondern nur ein Feld, in dem Fall also die "naechsteaufgabeid", wenn ich deinen Aufbau richtig verstehe.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Danke
Es funktioniert!
Weißt du wie lang ich da dran gesessen bin?
Und du? In ein paar Stunden
Vielen vilen Dank!
mfg
Azubis
Ähnliche Themen
-
Störende Begrenzung
Von Tigger007 im Forum 3D Studio MaxAntworten: 6Letzter Beitrag: 21.12.07, 00:11 -
HDD begrenzung
Von Private Joker im Forum HardwareAntworten: 3Letzter Beitrag: 03.03.06, 11:25 -
Begrenzung WHERE IN
Von Fabia im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 23.11.04, 11:33 -
Wie GB-Begrenzung umgehen?
Von Moritz123 im Forum HardwareAntworten: 2Letzter Beitrag: 10.09.04, 11:54 -
Begrenzung des MC
Von Burnymc im Forum Flash PlattformAntworten: 2Letzter Beitrag: 12.06.04, 09:02



1Danke

Zitieren

Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen