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

  • Gast-Avatar
    Ein Gast erstellte das Thema Probleme mit Array!.

    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

  • tapferesschneiderlein
    antwortet
    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
    // ...
    ?>

    Einen Kommentar schreiben:


  • brain_overload
    antwortet
    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...

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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";
    }

    Einen Kommentar schreiben:


  • brain_overload
    antwortet
    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...

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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?

    Einen Kommentar schreiben:


  • Simbo
    antwortet
    das könnte auch helfen:

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

    Einen Kommentar schreiben:


  • kid01
    antwortet
    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";}
    }

    Einen Kommentar schreiben:

Lädt...
X