Björn: order by rand() funktioniert nicht, und doch !?

Hallo,

und zwar :

Ich möchte Tabelleneinträge anzeigen nach Zufall:

$sql= "select http from $tabellen_name WHERE something='ja' AND something_2= 'ja' ORDER BY RAND(now())";

teste ich das auf dem einen Server funktioniert es,
teste ich das aber auf einem 2. Server funktioniert das nicht mehr,
liegt das vielleicht an der PHP Version ???

oder woran sonst ??

Danke

Gruß
Björn

  1. teste ich das auf dem einen Server funktioniert es,
    teste ich das aber auf einem 2. Server funktioniert das nicht mehr,

    "Funktioniert nicht". Aha. Mein Auto funktioniert nicht. Kannst mir sagen, was kaputt ist? Nein? Dann überlege Dir mal, was andere Leute mit Deiner Problembeschreibung "funktioniert nicht" anfangen können.

    liegt das vielleicht an der PHP Version ???

    Was hat SQL mit PHP zu tun?

    Gruß,
      soenk.e

    1. Danke für deinen hilfreichen Hinweis, schreib doch einfacn nichts, wenn du es nichts mit meiner Frage anzufangen weißt.

      Manch einer in diesem Forum kennt vielleicht das Problem, und kann mehr mehr dazu schreiben.

      mfg
      Björn

      "Funktioniert nicht". Aha. Mein Auto funktioniert nicht. Kannst mir sagen, was kaputt ist? Nein? Dann überlege Dir mal, was andere Leute mit Deiner Problembeschreibung "funktioniert nicht" anfangen können.

      1. hi,

        Danke für deinen hilfreichen Hinweis, schreib doch einfacn nichts, wenn du es nichts mit meiner Frage anzufangen weißt.

        Manch einer in diesem Forum kennt vielleicht das Problem, und kann mehr mehr dazu schreiben.

        manch einer hier in zukunft wird dir in zukunft überhaupt nicht mehr helfen, wenn du dich jetzt so arrogant und uneinsichtig aufführst.

        das "geht nicht" keine ausreichende problembeschreibung ist, wird inzwischen eigentlich von so gut wie allen denkenden wesen akzeptiert - zu welcher spezies gehörst du, wenn man fragen darf?

        gruss,
        wahsaga

        1. let the flame start .....

          gruss Björn

          1. hi,

            let the flame start .....

            könnte dir wohl so passen ... vergiss es :-P

            gruss,
            wahsaga

        2. Danke für deinen hilfreichen Hinweis, schreib doch einfacn nichts, wenn du es nichts mit meiner Frage anzufangen weißt.

          Du hast mich angesprochen, warum soll ich dann nicht antworten?

          das "geht nicht" keine ausreichende problembeschreibung ist, wird inzwischen eigentlich von so gut wie allen denkenden wesen akzeptiert - zu welcher spezies gehörst du, wenn man fragen darf?

          Offensichtlich zu der, die gerne Spielchen spielt: Erst eine Frage stellen, mit der mangels fehlender und falscher Informationen niemand etwas anfangen kann und kurze Zeit später verkünden, daß man den Fehler schon wußte - huaah, was'n Spass ;)

          Holla,
            soenk.e

  2. hi,
    ausschnitt von http://www.php.net/manual/de/function.rand.php...

    rand()
    PHP3, PHP4
    Anmerkung: In PHP-Versionen vor 3.0.7 hatte der zweite Parameter max nicht den Maximalwert sondern die Größe des Werteintervalls an, d.h. in diesen älteren Version muss statt rand (min, max) rand (min, max-min) benutzt werden, um dasselbe Ergebnis zu erhalten.
    ..
    zufällig genau diese version ?

    mfg
    comunicout

    --
    fütter mein ego !
    welcome to electro-smog therapy
    1. hi,
      ausschnitt von http://www.php.net/manual/de/function.rand.php...

      rand()
      ..
      zufällig genau diese version ?

      Hi,

      leider liegt es wohl nicht daran sondern, an der SQL Version 3.22,
      die "order by rand ()" nicht unterstützt (ab 3.23)

      jemand eine Idee wie trotzdem nach Zufall sortiert werden kann

      Danke für jeden Tip
      Gruß

      Björn

      1. hi,
        grab doch einfach den kompletten inhalt der DB in einen mehrdimensionalen
        array, den du dann nachher ausgibst... zufälliger versteht sich.

        mfg
        comunicout

        --
        fütter mein ego !
        welcome to electro-smog therapy
      2. Moin!

        jemand eine Idee wie trotzdem nach Zufall sortiert werden kann

        "Nach Zufall sortieren" ist ein Widerspruch in sich.

        Sortieren bedeutet, dass eine Anzahl von Elementen basierend auf einer Eigenschaft _definiert_ in eine Reihenfolge gebracht werden können. Beispielsweise kann man nach Werten sortieren (die kleinsten zuerst, die größten zuletzt), oder alphabetisch.

        Allen Sortieralgorithmen ist zueigen, dass die zum Sortieren die Eigenschaften zweier Elemente vergleichen müssen, um zu entscheiden, welches Element in der Sortierreihenfolge vorher kommt. Dadurch ist ermöglicht, dass der Sortieralgorithmus definiert beendet wird und nicht endlos sortiert, weil irgendwann die gewünschte Ordnung hergestellt ist.

        Du willst nun aber keine Ordnung, sondern Unordnung haben. Wie unordentlich darf es denn sein? Wenn du weißt, dass Ordnung im Prinzip durch das Tauschen zweier Elemente hergestellt wird, solange das "vordere" Element eigentlich nach "hinten" in der sortierten Liste gehört - wie lange willst du dann durch wahlloses Vertauschen in einer sortierten Liste Unordnung schaffen? Wie dir vielleicht einleuchtet, kannst du endlos lange Elemente in Unordnung bringen.

        Folglich ist dein Ansatz nicht sinnvoll.

        Du mußt den Chaos-Effekt also durch eine Sortierung herstellen. Beispielsweise, indem du (das wurde schon vorgeschlagen) die _sortierte_ DB-Liste per Zufallswert ausgibst (Achtung: Hierbei können Einträge doppelt ausgegeben werden, wenn du das nicht verhinderst). Oder indem du jedem Eintrag in der Datenbank eine weitere Eigenschaft zuordnest, die zufällig gewählt ist und nach der man dann sortieren lassen kann.

        - Sven Rautenberg

        --
        ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|