MySQL-Abfrage mischen

chriha

Mitglied
Hallo,
ich würde gern bestimmte IDs, die ich mit WHERE aus meiner DB gelesen habe "mischen" und dann eine ID ausgeben lassen.
Mit rand() funktioniert das denke ich nicht, da diese Funktion eine Zahlenfolge braucht und meine IDs sind ja gemischt (also z.B. 2, 4, 7).

Hat jemand eine Idee, wie man dieses Problem lösen könnte?

Danke schonmal für eure Antworten! Wünsche noch ein frohes Fest.
 
hi!
schreib einfach deine ID's in nen Array und lass dann mit random nen zufälligen index ausgeben.
Code:
 array[0] := 1;
 array[1] := 4;
 array[2] := 7;
 usw...
 
 i := rand(max_array);
 ausgabe := array[i];

sowas in der art, von der syntax her allerdings nicht das feinste php ;)
aber sollst ja auch nur verstehen was ich meine
mfg,
Tiischa
 
Hi supatiischa.

Deine Syntax ist eher Pascal, denn die Wertzuweisungen mit := kenn ich nur von Pascal. In PHP ist das, wie auch in C, ein simples =
Vergleiche hingegen werden mit == angestellt, wo in Pascal das = reicht.
Weiterhin haben Variablen in PHP ein $ vor dem Namen. ;)

Und bitte halte Dich an Gross- und Kleinschreibung.
 
Habe ich dich richtig verstanden:
Code:
SELECT
        …
  FROM
        …
  WHERE
        `id` IN (x, y, z)
  ORDER BY
        RAND()
  LIMIT
        1
Mit datenbankbezogene Anliegen – was dies zweifelsfrei ist – das nächste Mal bitte ans Datenbank-Forum wenden.
 
@supatiischa:
rand() benötigt zwei Parameter, von daher funktioniert das mit dem Array leider nicht.

@Gumbo:
Danke, funktioniert. Ich kannte die rand()-Funktion bei MySQL noch garnicht, sonst hätte ich mich ans Datenbank-Forum gewendet bzw. garnicht erst hier nachgefragt ;)



Also, für die die es interessiert:
PHP:
$anz_sql = mysql_query("SELECT zeile
                         FROM tabelle
                         WHERE id = '".$a['id']."'
                         ORDER BY RAND()
                         LIMIT 1")
                         OR die(mysql_error());
$anz = mysql_result($anz_sql, 0);


Frohes Weihnachtsfest und einen guten Rutsch euch allen
 
Zurück