random (ID-Zahl)

Victory

Grünschnabel
Hi Zusammen!

Ich habe folgendes Problem:

Ich habe vier Spalten in einer Tabelle (nennen wir sie mal ID, Spalte1, Spalte2, Spalte3). Ich möchte jetzt jeweils von einer Spalte einen Wert auslesen. Aber die Spalte sollten nicht von der gleichen Zeile stammen und sollte per Zufall ausgewählt werden!
D.H.: Es sollte etwa so aussehen:
Das Brot (Eintrag ist von Spalte1 mit der Zufalls-ID 3)
streicht (Eintrag ist von Spalte2 mit der Zufalls-ID 16)
die Wurst (Eintrag ist von Spalte2 mit der Zufalls-ID 501)
.

Was noch dazu kommt, ist recht schwer (ich zumindest hab keinen blassen...).
Die ID's können in einer Tabelle ja immer so sein:
1
2
3
4
5
6
7
8
9
10 usw.

Wenn ich jetzt aber die Zeile mit der ID 5 lösche, kann es sein, dass die Random Zahl auf 5 verweist, obwohl es gar keine Zeile mit der ID 5 gibt. Somit kann ich folgendes ja nicht anwenden:

PHP:
$sql="SELECT * FROM tabllenname";
$result=mysql_query($sql);


$idfirst="1"; //erste ID
$idlast=mysql_num_rows($result); //Letzte ID

$rand_id = rand($idfirst,$idlast);



Ich hab keine Ahnung wie ich das genau beschreiben kann... Hoffentlich habt ihr verstanden was ich meine!

Vieeelen Dank

Greets
Victory
 
Zuletzt bearbeitet:
du könntest bei jedem Aufruf mit $i++ die Arrays neu benennen (Pseudo-ID) und sie dann per Zufall auslesen (Mehrdimensionale Arrays)
 
Du machst eine MySQL Abfrage, die dir alle vorhandenen ID's in ein Array schreibt, dann wählst du über array_rand() (oder so ähnlich :rolleyes:) ein zufälliges Element aus dem Array aus. Damit hast du die Garantie, dass die gewählte ID auch tatsächlich vorhanden ist.
Damit kannst du dann weitere Anfragen an die DB starten.
 
Danke euch beidnen! Das is ne sehr gute Idee!
Jetzt solltes ja eigentlich gehen!

Ich will eben mein eigenes "SenslessSentenceOfTHeMoment"-Script machen...
Eintragen und alles geht schon gut, jetzt indemfall nur ncoh die Ausgabe!

Greets Victory
 
Hallo zum zweiten Mal!

Ja ich krichs ned hin...........
Kann mir wer nen dicken fetten gefallen machen und mir den vollen Code posten?

Dankeschön!


:rolleyes:
 
PHP:
$sql="SELECT * FROM tabllenname";
$result=mysql_query($sql);

$ids=array();
while($row=mysql_fetch_array($result)) {
   array_push($ids,$row['ID_spalte']);
}

$zufalls_id=array_rand($ids,3);

//jetzt kannst du die einzelnen Spalten auslesen. Also z.B. die erste Spalte mit...
$sql_spalte1=mysql_query("SELECT spalte1 FROM tabelle WHERE ID_spalte='".$zufalls_id[0]."'");
...

//die zweite Spalte:
$sql_spalte2=mysql_query("SELECT spalte2 FROM tabelle WHERE ID_spalte='".$zufalls_id[1]."'");
...

//und zu guter Letzte die dritte Spalte:
$sql_spalte3=mysql_query("SELECT spalte3 FROM tabelle WHERE ID_spalte='".$zufalls_id[2]."'");
...

Ist alles nicht getestet, sollte aber funktionieren...
 
Zurück