zufallsauswahl der id

ultrasonic

Erfahrenes Mitglied
Hi Leute schreibe gerade an einem gewinnspiel und stehe leider mächtig auf dem shclauf
durch probe einträge sind viele daten sätze gelöscht worden und so ergibt sich das ich auch keine fortlaufende ID mehr habe.


z.b. id
4
5
6
8
12
14
16
20
24

so und nu meine bitte!

kann mir einer einen ansatz vermitteln wie ich an besten den 1sten - dritten platz ermittel.

bitte helft mir

mfg
Ultrasonic
 
Hi,ultrasonic,

probiers mal so
Code:
SELECT * FROM $DB_TABLE ORDER BY $ergebnisspalte DESC LIMIT 3

$ergebnisspalte wäre dabei die Spalte, in welcher die Ergebnisse stehen,die fürs Ranking entscheiden sind(ich geh mal davon aus,dass dort eine Punktezahl drinnen steht). :)
 
1) Bitte halte dich in Zukunft an unsere Netiquette §12, besonders Groß/Kleinscheibung ;)

2) Dein Problem ist irgendwie nicht verständlich, bitte formulier das mal etwas umfangreicher. Was ist der 1ste dritte Platz ?
 
Ich schätze mal, dass du mit einer Datenbanksystem, wie etwa MySQL, arbeitest. Da hätte ich eine Lösung:

Zuerst liest du alle noch vorhandenen IDs aus und schreibst sie in ein Feld. Dies sollte dann ungefähr so aussehen:

  $temp['id'] = array(4,5,6,8,12,14,16,20,24);

Danach fügst du dieses Skript an:

&nbsp;&nbsp;for($i=0; $i<count($temp['id']); $i++) {
&nbsp;&nbsp;&nbsp;&nbsp;$temp['x'][$i] = 0;
&nbsp;&nbsp;}
&nbsp;&nbsp;for($i=1; $i<=3; $i++) {
&nbsp;&nbsp;&nbsp;&nbsp;$rand = rand() % count($temp['id']);
&nbsp;&nbsp;&nbsp;&nbsp;if($temp['x'][$rand] == 0) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo($temp['id'][$rand]."<br />");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$temp['x'][$rand] = 1;
&nbsp;&nbsp;&nbsp;&nbsp;} else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$i--;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;}
 
Original geschrieben von Tim Comanns
1) Bitte halte dich in Zukunft an unsere Netiquette §12, besonders Groß/Kleinscheibung ;)

2) Dein Problem ist irgendwie nicht verständlich, bitte formulier das mal etwas umfangreicher. Was ist der 1ste dritte Platz ?

Sorry das ich das nicht beachtet habe:


es handelt sich um das gewinnspiel auf :
radio-soundworx.de


MfG

Ultrasonic
 
Zuletzt bearbeitet:
Original geschrieben von Gumbo
Ich schätze mal, dass du mit einer Datenbanksystem, wie etwa MySQL, arbeitest. Da hätte ich eine Lösung:

Zuerst liest du alle noch vorhandenen IDs aus und schreibst sie in ein Feld. Dies sollte dann ungefähr so aussehen:

&nbsp;&nbsp;$temp['id'] = array(4,5,6,8,12,14,16,20,24);

Danach fügst du dieses Skript an:

&nbsp;&nbsp;for($i=0; $i<count($temp['id']); $i++) {
&nbsp;&nbsp;&nbsp;&nbsp;$temp['x'][$i] = 0;
&nbsp;&nbsp;}
&nbsp;&nbsp;for($i=1; $i<=3; $i++) {
&nbsp;&nbsp;&nbsp;&nbsp;$rand = rand() % count($temp['id']);
&nbsp;&nbsp;&nbsp;&nbsp;if($temp['x'][$rand] == 0) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo($temp['id'][$rand]."<br />");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$temp['x'][$rand] = 1;
&nbsp;&nbsp;&nbsp;&nbsp;} else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$i--;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;}


Werde es gleich mal testen.
Danke erstmal.

MfG
Ultrasonic
 
:rolleyes:

Was suchst du nun überhaupt.....ne zufällige Auswahl oder die Top 3.....das sind doch wohl 2 Sachen,die unterschiedlicher kaum sein könnten?!
 
Hi ,

ich suche keine Top 3 hast Du mein erstes Post nicht richtig gelesen?

Es geht um ein Gewinnspiel.


Viele User machen mit und ich möchte drei davon als Gewinner per Rand auslesen.
 
Viele User machen mit und ich möchte drei davon als Gewinner per Rand auslesen.

Und genau das ging nicht wirklich aus deinem Ursprungsposting hervor.

und die Lösung sieht so aus:

SELECT * FROM $DB_TABLE ORDER BY rand() LIMIT 3
 
Original geschrieben von Gumbo
Ich schätze mal, dass du mit einer Datenbanksystem, wie etwa MySQL, arbeitest. Da hätte ich eine Lösung:

Zuerst liest du alle noch vorhandenen IDs aus und schreibst sie in ein Feld. Dies sollte dann ungefähr so aussehen:

&nbsp;&nbsp;$temp['id'] = array(4,5,6,8,12,14,16,20,24);

Danach fügst du dieses Skript an:

&nbsp;&nbsp;for($i=0; $i<count($temp['id']); $i++) {
&nbsp;&nbsp;&nbsp;&nbsp;$temp['x'][$i] = 0;
&nbsp;&nbsp;}
&nbsp;&nbsp;for($i=1; $i<=3; $i++) {
&nbsp;&nbsp;&nbsp;&nbsp;$rand = rand() % count($temp['id']);
&nbsp;&nbsp;&nbsp;&nbsp;if($temp['x'][$rand] == 0) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo($temp['id'][$rand]."<br />");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$temp['x'][$rand] = 1;
&nbsp;&nbsp;&nbsp;&nbsp;} else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$i--;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;}





denke ich muss noch seeeehr viele lernen.........

Hier mein Versuch

PHP:
$db_output  = mysql_connect  ($dbserver, $dbuser, $dbpass);
  echo mysql_error($db_output);

if (!mysql_select_db( $dbname))
      echo mysql_error($db_output);
$ergebnis_output = mysql_query("SELECT * FROM Adressen_gewinnspiel order by id",$db_output);
  while ($temp = @mysql_fetch_array($ergebnis_output)){

 $temp['id'] = array();
  }
for($i=0; $i<count($temp['id']); $i++) {
    $temp['x'][$i] = 0;
  }
  for($i=1; $i<=3; $i++) {
    $rand = rand() % count($temp['id']);
    if($temp['x'][$rand] == 0) {
      echo $temp['id'][$rand]."<br />";
      $temp['x'][$rand] = 1;
    } else {
      $i--;
    }
  }
?>

...... geht nicht
 
Zurück