zufall aus array

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

  • zufall aus array

    bald ist es soweit --> ich werde durchdrehen :-)

    ich brauche eine zufällige zahl aus einem array. wie geht das?

    mein array heisst z.b. $ergebnis, und ist das ergebnis einer mysql abfrage. enthalten sind bildnummern. denn ich möchte im endeffekt mal ein zufallsbild anzeigen ...

    mein bisheriger code:

    $suche = mysql_query(" select Bild from $tabelle where Bild > 0");
    $ergebnis = mysql_fetch_array($suche);

    mt_srand ((float) microtime() * 1000000);
    $test = mt_rand($ergebnis, ????);

    die fragezeichen habe ich schon durch alles mögliche ersetzt. es kommt nur unfug dabei raus :-)

    ich befürchte, dass ich $ergebnis ersteinmal in zahlen umwandeln muss, da es scheinbar immer den wert 1 hat. aber wie???????

    thx 4 help

    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

  • #2
    hmmm,
    ich check deinen Code nicht

    Also was liest du denn da aus ??
    Ich denke du liest die bilddaten in ein array bzw. dies ist was du tun willst weil dein Code funzt so garnicht
    du liest nämlich nur das erste Bild aus, du willst ja aber die Anzahl ermitteln und dann eines anzeigen oder ?

    Das geht so :

    Code:
    $suche = mysql_query("select Bild from $tabelle where Bild > 0");
    $i=0;
    while ($ergebnis = mysql_fetch_array($suche))
    {
    $i++
    };
    mt_srand ((double) microtime() * 1000000);  
    $zufall = mt_rand(0,$i-1);
    echo $ergebnis[$zufall];
    du hast da noch ein paar errors drin denn
    $test = mt_rand($ergebnis, ????);

    ist total daneben denn mt_rand definiert sich so ==>
    int mt_rand([int min], [int max]);
    ich denke jetzt ist klar was falsch war

    Kommentar


    • #3
      hmmmmm, ersteinmal danke für die schnelle antwort. bin nun schlauer.

      aber funzen tut das auch nicht!!!! habe den code etwas abgeändert, damit die parse errors weg waren:

      $suche = mysql_query(" select Bild from $tabelle where Bild > 0");
      $i=0;
      while ($ergebnis = mysql_fetch_array($suche))
      { $i++; }
      mt_srand ((double) microtime() * 1000000);
      $zufall = mt_rand(0,$i-1);
      echo "was steht da: $ergebnis[$zufall] ?";

      zwischen "was steht da" und dem "?" herrscht gähnende LEERE :-) .... jetzt sag nicht die db ist leer *g*
      h.a.n.d.
      Schmalle

      http://impressed.by
      http://blog.schmalenberger.it



      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
      ... nur ohne :-)

      Kommentar


      • #4
        problem gelöst

        letzte zeile muss lauten:

        echo "was steht da: $zufall ?";

        merci, and c ya later
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar


        • #5
          upps,

          das sollte heissen $ergebnis[$i] = $mysql......
          in der whileschleife Da hab ich wohl zu schmatisch gedacht und dann ausgeben ist dann halt echo $ergebnis[$zufall][0]

          hmm,

          und lass dir mal $i ausgeben ob der query richtig ist, nicht das er nix ausliest und wir am falschen ende suchen.

          Kommentar


          • #6
            *wirr*

            hmmm, nun bin ich etwas verwirrt! habe den code nun nach "neusten ereknntnissen" umgebaut:

            Code:
            $suche = mysql_query(" select Bild from $tabelle where Bild > 0");
            $i=0;
            while ($ergebnis[$i] = mysql_fetch_array($suche))
            { $i++;  }
            mt_srand ((double) microtime() * 1000000);  
            $zufall = mt_rand(0,$i-1);
            echo "was steht da: $ergebnis[$zufall] ?";
            echo  "test: $i";
            hierbei habe ich folgende ergebnisse:

            $ergebnis[$zufall] = "array"
            $i = 28 <-- Anzahl der ergebnisse aus mysql ( hab von hand mal die möglichen ergebnisse gezählt :-)

            verwende ich aber diesen code:

            Code:
            $suche = mysql_query(" select Bild from $tabelle where Bild > 0");
            $i=0;
            while ($ergebnis = mysql_fetch_array($suche))
            { $i++;  }
            mt_srand ((double) microtime() * 1000000);  
            $zufall = mt_rand(0,$i-1);
            echo "was steht da: $zufall ?";
            echo  "test: $i";
            dann funzt es

            $zufall = "ständig welchselnde zahl aus möglichen ergebnissen"
            $i = 28

            h.a.n.d.
            Schmalle

            http://impressed.by
            http://blog.schmalenberger.it



            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
            ... nur ohne :-)

            Kommentar


            • #7
              ahhhhhhhhhhhh

              geht doch nicht!!!!!

              habe das script nun erweitert, und festgestellt, dass die zufallszahlen nicht aus der sql-abfrage stammen!!!
              er zeigt mit ständig völlig falsche sachen an.

              es gibt nun z.b. 4 mögliche ergebnisse. diese lauten z.b.

              1, 7, 18 und 23

              ich bekomme aber zahlen wie 0, 17, usw.

              ich werde verzweifeln!!!!
              h.a.n.d.
              Schmalle

              http://impressed.by
              http://blog.schmalenberger.it



              Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
              ... nur ohne :-)

              Kommentar


              • #8
                nochmal langsam zum mitschreiben

                so also du willst die spalte bild auslesen aus der Tabelle $tabelle wo die variable bild > 0 ist ===>>

                $ db = mysql_connect....
                $query = "SELECT bild FROM ".$tabelle." WHERE bild > 0";
                $result = mysql_query($query,$db);

                so gut das haben wir, jetzt wollen wir das in ein Array einlesen

                $i = 0; // das ist die zaehlervariable
                while ($ergebnis[$i] = mysql_fetch_array($result,MYSQL_ASSOC)) // Das liest die datensätze einzeln in ein 2dimensionales Array ein
                {
                $i++; // unkreativ programmiert , ich weiss Titus
                }
                // so jetzt haben wir die Daten im Array $ergebnis
                // Jetzt den Startwert vom Zufallsgenerator erzeugen
                mt_srand ((double) microtime() * 1000000);
                $zufall = mt_rand(0,$i-1);
                // Die zufallszahl zwischen 0 und $i-1 weil ja die 0 mitzaehlt.
                echo $ergebnis [$zufall]["bild"];
                // Dieses Echo gibt den inhalt der Variable Bild an die als ergebnissring $zufall aus der DB gelesen wurde.

                Ein Beispiel

                Es wird ausgelesen 1,4,6,8.
                Dann sind :
                $ergebnis[0]["bild"] = 1
                $ergebnis[1]["bild"] = 4
                $ergebnis[2]["bild"] = 6
                $ergebnis[3]["bild"] = 8
                so und jetzt nehmen wir als zufallszahl 3
                dann ergibt der Echo Befehl 8.

                Wenn nicht dann bin ich doof oder hab mich vertippt.

                Kommentar


                • #9
                  also, dafür dass das so unkreativ war, funzt es ganz gut *g*

                  werde meine fragen ab sofort immer direkt an dich stellen ... da bekommt man nicht nur den code, sondern auch noch ne erklärung der funktionen --> SUPER

                  sänk ju werry matsch
                  h.a.n.d.
                  Schmalle

                  http://impressed.by
                  http://blog.schmalenberger.it



                  Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                  ... nur ohne :-)

                  Kommentar

                  Lädt...
                  X