zufallswert aus db auslesen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • zufallswert aus db auslesen?

    hallo,

    ich habe eine tabelle namens members und eine splate username!

    ich möchte das per zufall ein username aus der tabelle members ausgelesen wird!

    wie geht das?

  • #2
    mach doch folgendes :

    1.) Anzahl der Entries auslesen ($anz = mysql_num_rows ($sql))
    in einer Variablen speichern
    2.) $wert = rand(0,$anz)

    sieht dann ungefähr so aus :

    PHP-Code:
    $sql "SELECT * FROM $table";
    $sql_q mysql_query($sql);

    $anz mysql_num_rows($sql);
    $wert rand(0,$anz); 
    3.) und dann halt nochmal nen Select mit where-Klausel ....

    PHP-Code:
    $sql "SELECT * FROM $table where ID = '$wert'" 
    und dann die Daten auslesen .... (*schäm* weiss grad nich wie ...)

    mfg DaPhreak
    If something's HARD to do,

    then it's not worth doing.
    (Homer J. (Jay) Simpson)

    Kommentar


    • #3
      ok thx!

      Kommentar


      • #4
        DaPhreak schrieb
        $anz = mysql_num_rows($sql);
        $wert = rand(0,$anz);

        $sql = "SELECT * FROM $table where ID = '$wert'"
        Vorsicht!
        Diese Abfrage ($anz) zählt ja nur die Anzahl der Einträge und generiert einen Zufallswert bis max. dieses Wertes.
        Wie willst du wissen, ob ein Datensatz der zufälligen ID wirklich in deiner Tabelle ist?

        Man sollte schon berücksichtigen, daß z.B. auch mal Datensätze gelöscht werden.

        So wäre es auch denkbar, daß mysql_num_rows() z.B. 50 Einträge zählt, aber der letzte Eintrag hat u.U. die ID 59(!).

        Außerdem hast du ein paar kleine Fehler in deinem Code, DaPhreak.
        Korrektur der Abfrage:
        [COLOR=blue][FONT=courier]$anz = mysql_num_rows($sql_q);[/FONT][/COLOR]
        und

        [COLOR=blue][FONT=courier]$rnd = rand(0,$anz-1)+1;[/FONT][/COLOR]
        Sonst bekommst du evtl. den Wert 0, und standardmäßig sollte es keine ID 0 geben.

        Alternativer Lösungsvorschlag:
        PHP-Code:
        // Zufällige ID
        $sql "SELECT id FROM $table";
        $result mysql_query($sql);
        while (
        $row mysql_fetch_array($result)) $id[] = $row[id];
        $wert rand(0,sizeof($id)-1);

        // Datensatz mit zufälliger ID auslesen
        $sql "SELECT * FROM $table WHERE ID='$id[$wert]' ";
        $result mysql_query($sql);
        $row mysql_fetch_array($result);
        echo 
        "$row[spalte1]$row[spalte2] ... etc"
        Immer erst mal gucken, ob Benzin im Tank ist ...

        Kommentar


        • #5
          super! noch besser thx!

          Kommentar


          • #6
            mhh ich will ja eure varianten jetzt nicht schelcht machen aber ich hab eine noch besser und kürzere gefunden

            PHP-Code:
            SELECT username FROM members ORDER BY rand() LIMIT 1 

            Kommentar


            • #7
              Hmm, hast recht, ist a bissi kürzer ...
              ... wieso auch über Paris nach Rom, wenns direkt geht ...
              Man lernt eben nicht aus.
              Immer erst mal gucken, ob Benzin im Tank ist ...

              Kommentar

              Lädt...
              X