Zufallszahl und schleife ?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zufallszahl und schleife ?

    Hi

    Ich habe eine Tabelle in meine Datenbank die 2 Spalten enthäl : id und name

    In id ist logischerweiße die id des feldes und insgesamt sind es 2000 Einträge.

    Im Feld name steht erstmal überall eine 0.

    Jetzt möchte ich dass eine Zufallszahl zwischen 1 und 2000 erzeugt wird und dann überprüft wird ob im entsprechenden feld name=0 ist.Wenn dies der Fall ist so soll name von 0 auf 1 geupdated werden

    Also so ungefähr :
    PHP Code:
    <?
    $name_sel="SELECT name from table WHERE id=\"$zufallszahl\"";

    .
    .
    if($name==0) {
    $update="UPDATE table SET name=1 WHERE id=\"$zufallszahl\"";

    .
    .
    Ich denke am besten macht man das mit einer Schleife aber wie das genau gehen soll hab ich noch nicht rausgefunden.Und wie man eine wirklich gute Zufallszahl bekommt weiß ich auch nichtHab nur rand() gefunden aber das liefert nur "Schrott"

    Weiß jmd. von euch weiter ?

  • #2
    PHP Code:
    mt_srand ((double)microtime()*1000000); // "startet" den Zufallszahlen-Generator
    $zufallszahl mt_rand (1,2000); // erzeugt eine Zufallszahl zwischen 1 und 2000 
    aber was willst du in der Schleife machen? Sollen mehrere Zufalszahlen erzeugt werden?

    Comment


    • #3
      Also danke erstmal für die Zufallszahl

      Ich will ne Schleife in der solange überprüft wird ob name=0 WHERE id=$zufallszahl bis true rauskommt
      dann soll auf 1 geupdated werden.

      Bei jedem versuch ne andere Zahl .... kriegst du das hin ? *g*

      Comment


      • #4
        so wie ich das sehe, kommst du ja nich drumrum, den heern mysql zu bemühen, warum machst du dann nicht sowas in der art ((wahrscheinlich extrem) optimierfähig)
        PHP Code:
        $update="UPDATE table SET name=1 WHERE id=\"$zufallszahl\" and name=0";
        do
          
        mysql_query($query);
        while (
        mysql_affected_rows()==0); 
        Ich denke, also bin ich. - Einige sind trotzdem...

        Comment


        • #5
          muss das nich
          PHP Code:
          $name_sel="SELECT name from table WHERE id=" $zufallszahl
          sein?

          Comment


          • #6
            PHP Code:
            <?php
            mt_srand 
            ((double)microtime()*1000000); // "startet" den Zufallszahlen-Generator

            do {
              
            $zufallszahl mt_rand (1,2000); // erzeugt eine Zufallszahl zwischen 1 und 2000
              
            $resource mysql_query ("SELECT name FROM table WHERE id='$zufallszahl'");
              
            $result mysql_fetch_row($resource);
              
            $name $result[0];
            } while (
            $name != 0)

            mysql_query ("UPDATE table SET name=1 WHERE id='$zufallszahl'");

            ?>
            so

            Comment


            • #7
              wie wär's damit:
              PHP Code:
              mt_srand ((double)microtime()*1000000);
              $zufallszahl=mt_rand (1,2000);
              $update="UPDATE table SET name=1 WHERE name=0 ORDER BY RAND($zufallszahl) LIMIT 1";
              mysql_query($update); 
              Last edited by mrhappiness; 04-02-2003, 20:46.
              Ich denke, also bin ich. - Einige sind trotzdem...

              Comment


              • #8
                Original geschrieben von mrhappiness
                wie wär's damit:
                PHP Code:
                mt_srand ((double)microtime()*1000000);
                $zufallszahl=mt_rand (1,2000);
                $update="UPDATE table SET name=1 WHERE name=0 ORDER BY RAND($zufallszahl) LIMIT 1";
                mysql_query($update); 
                Da wird abe rnichts geupdated

                Comment


                • #9
                  Ist das überhaupt ne Schleife ?

                  Comment


                  • #10
                    nö *g*
                    war eher so gedacht, dass der gute geist deiner datenbank alle datensätze, bei denen name den wert 0 hat wild durcheinander würfelt, einen rauszieht und name auf 1 setzt

                    Frag mich jetzt aber nich, warum das nich tut
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Comment


                    • #11
                      Ansich ne gute idee

                      Comment

                      Working...