Zufallszahlen

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

  • Zufallszahlen

    ich wollte gerne zufällig zahlen, (zwischen 1 und 8) updaten


    srand ((double)microtime()*1000000);
    $randval = rand(1,8);

    $sql ="UPDATE Spieler SET SpTNr = $randval WHERE LigaName = '$lname'";


    so gibt er mir aber für jeden die gleiche zahl,

    sollen doch aber alle verschiedene zahlen bekommen, also einer bekommt die 7, einer die 3 usw., bis alle acht zahlen aufgeteilt sind, aber eben nicht der reihe nach, sondern zufällig

    ich hoffe es kann mir jemand helfen

  • #2
    das Thema sehe ich oft hier im Forum, bitte mal nach RAND suchen.

    Kommentar


    • #3
      Re: Zufallszahlen

      so gibt er mir aber für jeden die gleiche zahl,
      ja, nix confused. du erzeugst ja nur eine zahl

      benutz den zufallssimulator vom sql, RAND liefert ne zahl zwischen 0 und 1, ...

      oder erstell vorher soviel werte, wie du brauchst, naja, eher nicht.
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        Original geschrieben von asp2php
        das Thema sehe ich oft hier im Forum, bitte mal nach RAND suchen.
        ich hab hier im forum gesucht, sowie in vielen anderen, konnte aber nichts finden



        Original geschrieben von derHund
        oder erstell vorher soviel werte, wie du brauchst, naja, eher nicht. [/B]

        na ja, eher nicht

        Kommentar


        • #5
          Wohl nicht gründlich gesucht

          Aber naja.

          Mache einfach ne Schleife drum:
          und aus $lname machste dir ein array mit den elementen

          PHP-Code:

          $max 
          5;

          for (
          $i=0;$i<=$max;+i++)
          {
          srand ((double)microtime()*1000000);
          $randval rand(1,8);

          $sql ="UPDATE Spieler SET SpTNr = $randval WHERE LigaName = '$lname[$i]'";

          Ein blue screen ist nicht immer was schlimmes... es hängt nur davon ab wo er zu sehen ist !
          www.d-creationz.de

          Kommentar


          • #6
            und warum nicht einfach sowas in der art
            PHP-Code:
            define('MAXIMUM'8);
            $zufallszahlen range(1MAXIMUM);
            shuffle($zufallszahlen);
            foreach (
            $zufallszahlen as $zahl)
              echo 
            $sql 'UPDATE spieler 
                SET sptnr = '
            .$zahl."
                WHERE liganame = '"
            .$lname."'"
            @reaVen
            wohl eher nicht oder kannst du mir garantieren, dass nicht zweimal der gleiche zufallswert rauskommt?
            pro schleifendurchlauf srand aufzurufen ist auch nicht das gelbe vom ei...
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Hehe garantieren kann ich dir nix =)

              aber ist das nicht auch der sinn einer zufallszahl das es zufall ist also auch die gleich kommen kann ?
              hatte es nur so verstanden das nicht alle den selben wert haben sollen.

              klar ist das nicht das gelbe vom ei aber reichen tuts.
              Ein blue screen ist nicht immer was schlimmes... es hängt nur davon ab wo er zu sehen ist !
              www.d-creationz.de

              Kommentar


              • #8
                Re: Zufallszahlen

                Original geschrieben von reaVen
                aber ist das nicht auch der sinn einer zufallszahl das es zufall ist also auch die gleich kommen kann ?
                hatte es nur so verstanden das nicht alle den selben wert haben sollen
                Original geschrieben von Elelady
                sollen doch aber alle verschiedene zahlen bekommen
                ...
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  was spricht gegen ein
                  Code:
                  UPDATE spieler 
                  SET sptnr = RAND() * 7 + 1
                  WHERE liganame = ...
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar


                  • #10
                    @mrhappiness

                    hi, danke dir, sah echt so gut aus

                    UPDATE Spieler SET SpTNr = 7 WHERE LigaName = 'Arabien'UPDATE Spieler SET SpTNr = 5 WHERE LigaName = 'Arabien'
                    UPDATE Spieler SET SpTNr = 4 WHERE LigaName = 'Arabien'UPDATE Spieler SET SpTNr = 2 WHERE LigaName = 'Arabien'
                    UPDATE Spieler SET SpTNr = 6 WHERE LigaName = 'Arabien'UPDATE Spieler SET SpTNr = 3 WHERE LigaName = 'Arabien'
                    UPDATE Spieler SET SpTNr = 8 WHERE LigaName = 'Arabien'UPDATE Spieler SET SpTNr = 1 WHERE LigaName = 'Arabien'

                    aber am ende hatten alle doch wieder nur die selbe zahl , ist vieleicht auch von mir ein denkfehler, oder ich habs falsch beschrieben
                    SpTNr ist ja ein spaltenname und da wird doch dann jedesmal die ganzen spaltenwerte verändert

                    so sieht die tabelle aus:

                    LigaName.......Name... SpTNr
                    Arabien....... ele2 .......... 7
                    Arabien....... ele77 ..........7
                    test .......... ele1 ..........
                    Arabien...... ele7 .......... 7
                    Arabien....... ele5 .......... 7
                    Arabien....... ele14 .......... 7
                    Arabien....... ele12 ..........7
                    Arabien....... Dummie........ 7
                    Arabien....... ele6 .......... 7
                    Michi Masters ...ele25
                    Michi Masters ...ele11
                    Michi Masters ...ele99
                    Michi Masters ...ele9

                    und jetzt soll er zb. alle raussuchen die für arabien eingetragen sind und unter denen eben die 8 zahlen (als Spieler-Nr.) verteilen und es muss natürlich jeder eine andere zahl bekommen


                    @reaVen

                    hab deins auch versucht, aber da kommt in der zeile:

                    for ($i=0;$i<=$max;+i++)

                    ein Parse error, weiss aber nicht warum

                    Kommentar


                    • #11
                      dann musst du dir zu jedem spieler einer liga ein eindeutiges merkmal raussuchen, eine spieler_id oder sowas, anderenfalls änderst du - wie du ja gemerkt hast - immer alle spieler einer liga

                      also vorher ein SELECT um dieses eindeutige merkmal auszulesen, in einem array speichern und in der schleife mit dem UPDATE auch einbauen
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        vielen dank mrhappiness, werde mal versuche ob ich das so hinkriege



                        @derHund
                        hab deins auch ausprobiert, geht leider auch nicht, hat zwar verschiedene zahlen verteilt, aber die 2 zb 4x, und dafür fehlten dann die anderen

                        schade, wäre so schön einfach gewesen

                        Kommentar


                        • #13
                          @derHund
                          hab deins auch ausprobiert, geht leider auch nicht, hat zwar verschiedene zahlen verteilt, aber die 2 zb 4x, und dafür fehlten dann die anderen
                          OffTopic:
                          zu dem zeitpunkt war mir noch nicht klar, daß du immer verschiedene werte haben wolltst ...
                          Die Zeit hat ihre Kinder längst gefressen

                          Kommentar


                          • #14
                            -

                            Kommentar

                            Lädt...
                            X