MaXDoMe: Zufällig aus einer Tabelle lesen (MySQL mit PHP)

Hallo,

wie das Thema schon sagt, will ich aus einer MySQL-Datenbank etwas zufällig ausgeben. Man kann es mit einem art LOTTO-Spiel vergleichen.

DB-Tabelle:

| NAME |
--------
|Test1 |
|Test2 |
|Test3 |
|Test4 |

Jetzt soll zufällig eines ausgesucht werden und ausgegeben werden.

Ich habe schon gegoogled, aber nichts gefunden.

Gruß
MaXDoMe

  1. Hello,

    gewöhnlicherweise verwendet man ein zufällige Sortierung und nimmt dann nur den ersten Satz (falls die Syntax fehlerhaft ist, bitte gerade LIMIT und RAND selber nachschlagen).
    SELECT name
    FROM table
    ORDER BY RAND()
    LIMIT 1

    MfG
    Rouven

    --
    -------------------
    He is entertaining both out of the car and in the car because if you tell him that a corner is almost flat then he is the guy who is going to try to take it flat even if it means shunting it the other side of it, he will come with the data and say 'hey, I may have crashed and destroyed the car, but I was flat-out'. That is an interesting quality that he has!  --  Team Member on Jacques Villeneuve
    1. Hallo,

      SELECT name
      FROM table
      ORDER BY RAND()
      LIMIT 1

      Es klappt einfach nicht, es kommt folgender Fehler:

      Unknown column '1560555489' in 'order clause'

      Gruß
      MaXDoMe

      1. hi,

        SELECT name
        FROM table
        ORDER BY RAND()
        LIMIT 1

        Es klappt einfach nicht,

        Wie _genau_ sieht deine Query aus?
        Welche MySQL-Version benutzt du?

        es kommt folgender Fehler:

        Unknown column '1560555489' in 'order clause'

        http://dev.mysql.com/doc/refman/4.1/en/mathematical-functions.html besagt eindeutig, dass es so geht:
        "ORDER BY RAND() combined with LIMIT is useful for selecting a random sample from a set of rows"

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hello,

          http://dev.mysql.com/doc/refman/4.1/en/mathematical-functions.html besagt eindeutig, dass es so geht:
          "ORDER BY RAND() combined with LIMIT is useful for selecting a random sample from a set of rows"

          ...na ja, und wenn nicht, dann eben über eine virtuelle Spalte...
          SELECT name, RAND() AS zufall
          FROM table
          ORDER BY zufall
          LIMIT 1

          Wobei mich schon interessieren würde, warum er Probleme hat...

          MfG
          Rouven

          --
          -------------------
          There's no such thing as a free lunch  --  Milton Friedman
        2. Hallo,

          den Fehler mit Unknown column '1560555489' in 'order clause' habe ich behoben. Jedoch habe ich jetzt ein anderes Problem, mir wird von mysql_query(.....) nur 'Resource id #3' ausgegeben, nicht das was in der Zeile in der DB steht. Was mache ich falsch?

          Gruß
          MaXDoMe

          1. Hello,

            den Fehler mit Unknown column '1560555489' in 'order clause' habe ich behoben. Jedoch habe ich jetzt ein anderes Problem, mir wird von mysql_query(.....) nur 'Resource id #3' ausgegeben, nicht das was in der Zeile in der DB steht. Was mache ich falsch?

            na ja, genau genommen gar nichts. Genau das soll ja auch rauskommen, siehe Handbuch (übrigens immer mal ein heißer Tipp um was rauszufinden...).
            Ansonsten möchtest du z.B. mal einen Blick in die PHP-FAQ werfen.

            MfG
            Rouven

            --
            -------------------
            Unser Problem ist, dass wir eine Demokratie entwickelt haben, was nicht immer der richtige Weg ist  --  Bernie Ecclestone zu den lästigen Diskussionen um Regeländerungen in der Formel 1
          2. google mal nach mysql_fetch_array()