Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit Array!

Einklappen

Neue Werbung 2019

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

  • Probleme mit Array!

    Hallo,
    ich habe folgende Situation:

    Ich habe in meiner Datenbank eine bestimmte anzahl an einträgen die sich immer ändert. Denen möchte ich per zufall jeweils ein A oder B oder C oder D zuweisen.

    Man hat mir gesagt das müsste mit Array gehen und die dann mischen aber ich versteh das nich wie das geht

    Hat mir jemand nen Rath mit Beispiel oder ähnliches?

    Gruss dE MaStEr


  • #2
    Array mischen???

    mach doch nach dem auslesen in der while schleife oder wo du auch immer deine daten speicerts ne zufallszahl.

    dann
    Code:
    switch (mt_rand(0,3))
    {
    case:0{array[$i][0]=dbergebnis;array[$i][1]="a";}
    case:0{array[$i][0]=dbergebnis;array[$i][1]="b";}
    }
    http://www.dhsmedia.de
    http://www.deutsch-im-blick.de

    Kommentar


    • #3
      das könnte auch helfen:

      http://tut.php-q.net/array.html
      simbo.de

      Kommentar


      • #4
        Ne, bringt mir alles nichts.
        Es darf ja zu einem Eintrag nicht 2 mal etwas zugewiesen werden!

        Einer ausm IRC sagte mir das:
        erzeuge ein Array mit den Werten, die du zuweisen willst, mische dieses array mit shuffle, gehe mit foreach über das array, entnimm die werte und weise sie zu
        Nur ich hab keine ahnung was der mit da mitteilen wollte

        Kann mir da jemand nen Beispiel dazu zeigen?

        Kommentar


        • #5
          Zitat von Simbo
          das könnte auch helfen:

          http://tut.php-q.net/array.html
          Jop die Seite kenne ich bringt mir auch nix bei meinem Problem!

          Ich raffs irgendwie nicht, das auslesen der Einträge in das array. Und wie ich dann das ganze shuffeln soll

          Also der Aufbau mit der Schleife und dem Array versteh ich ned wie man das macht. Wenn ihr mir da ma nen kleines beispiel machen könntet wäre das gut!

          Kommentar


          • #6
            Stimmt, so geht's ganz einfach:
            erzeuge ein Array mit den Werten, die du zuweisen willst, mische dieses array mit shuffle, [...] entnimm die werte und weise sie zu
            $arr[0] = "A"; // initialisiern
            $arr[1] = "B";
            $arr[2] = "C";
            $arr[3] = "D";

            shuffle($arr); // mischen

            echo $arr[0]; // ...und beispielsweise immer $arr[0] nehmen...

            Kommentar


            • #7
              Zitat von brain_overload
              Stimmt, so geht's ganz einfach:
              erzeuge ein Array mit den Werten, die du zuweisen willst, mische dieses array mit shuffle, [...] entnimm die werte und weise sie zu
              $arr[0] = "A"; // initialisiern
              $arr[1] = "B";
              $arr[2] = "C";
              $arr[3] = "D";

              shuffle($arr); // mischen

              echo $arr[0]; // ...und beispielsweise immer $arr[0] nehmen...
              Ich bekomme die datensätze so ausgelesen und dann setz ich das einfach so ein oder wie?

              Code:
              while($row = mysql_fetch_assoc($result)) {
                        
                            $arr[0] = "A";
                            $arr[1] = "B"; 
                            $arr[2] = "C";
                            $arr[3] = "D";
              }

              Kommentar


              • #8
                Zitat von GotA|MaStErMaN
                Ich bekomme die datensätze so ausgelesen und dann setz ich das einfach so ein oder wie?
                Hab Dein Problem vielleicht nicht ganz kappiert!?

                Hiermit...
                Zitat von brain_overload
                echo $arr[0]; // ...und beispielsweise immer $arr[0] nehmen...
                ...bekommt Du lediglich einen Zufallsbuchstaben aus "A,B,C,D".
                Was Du dann damit machst ist ne andere Geschichte...

                Kommentar


                • #9
                  Code:
                  <?php
                  
                  $array['A'] = TRUE;
                  $array['B'] = TRUE;
                  $array['C'] = TRUE;
                  $array['D'] = TRUE;
                  
                  
                  // »Zuordnen» bedeutet für immer und ewig 
                  // in der Tabelle festhalten:
                  
                  $q = 'SELECT `primary_key` 
                        FROM `tabelle`
                        WHERE `attribut` IS NULL
                        OR `attribut` = ""';
                  
                  $r = mysql_result($q);
                  $n = mysql_num_rows($r);
                  
                  for ($i = 0; $i < $n; $i++)
                      {
                      $q = 'UPDATE `tabelle`
                            SET `attribut` = "'.array_rand($array).'"
                            WHERE `primary_key` = "'.mysql_result($r, $i, 0).'"';
                      mysql_query($q);
                      }
                  
                  
                  //  »Zuordnen» bedeutet das temporäre zufällige 
                  // Zuordnen in eine Kategorie:
                  
                  $q = 'SELECT * 
                        FROM `tabelle`';
                  
                  $r = mysql_result($q);
                  $n = mysql_num_rows($r);
                  
                  for ($i = 0; $i < $n; $i++)
                      $ergebnis[] = mysql_fetch_array($r, MYSQL_ASSOC);
                  
                  foreach ($ergebnis AS $key => $dummy)
                      $ergebnis[$key]['attribut'] = array_rand($array);
                  
                  
                  // weiterverarbeiten
                  // ...
                  ?>

                  Kommentar

                  Lädt...
                  X