tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
469
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Naisetsu
    Naisetsu Naisetsu ist offline Mitglied Bronze
    Registriert seit
    Jun 2005
    Ort
    Schweiz
    Beiträge
    33
    Hallo zusammen,

    Mir fehlt der eine Input um weiter zu kommen...

    Ich habe einen array $zufallszahlen und möchte jeden Wert nur einmal drinnen haben.
    Daher soll das array nach dem Wert von $zufall durchsucht werden und wenn bereits vorhanden eine neue Zahl ausgeben.

    Wie kann ich einen array nach einem bestimmten Wert durchsuchen?
     
    Gruss Alex

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Entspricht die array_unique()-Funktion deinen Wünschen?
     
    Markus Wulftange

  3. #3
    Avatar von Naisetsu
    Naisetsu Naisetsu ist offline Mitglied Bronze
    Registriert seit
    Jun 2005
    Ort
    Schweiz
    Beiträge
    33
    Nein, ich möchte nicht den Wert aus dem array löschen
    jedoch habe ich mich wieder einmal selber erwischt, wie ich
    zuschnell in Posting erstelle, und erst dann in Manuals und Forum durchsuche

    Also, ich denke, ich habe meine Lösung gefunden: array_search()

    PHP-Code:
    <?php
    $zufallszahl 
    rand(0,10); // Zufallszahl setzen
    $error[] = $zufallszahl;
    if (
    array_search($zufallszahl$error); //wenn die Zufallszahl im array vorhanden ist
    // hol dir nochmals eine neue Zahl, else etc...
     
    ?>
    Das ganz könnte ich auch in einer schleife lösen:

    Solange nicht alle Zahlen von 0-10 im Array enthalten sind (und sofern keine doppelt) mach was...

    Danke Gumbo für den Hinweis..
     
    Gruss Alex

  4. #4
    Avatar von Naisetsu
    Naisetsu Naisetsu ist offline Mitglied Bronze
    Registriert seit
    Jun 2005
    Ort
    Schweiz
    Beiträge
    33
    Ich bins nochmal, ist doch noch nicht alles geklärt, ich steh auf'm Schlauch:

    Ich habe in der Datenbank 10 Eintragungen (Zu jeder ID einen Spruch und Autor)
    und lese die dann aus.

    Nun zum Code:

    PHP-Code:
    $zitatID rand(1,10); // ZufallsID ermitteln
    $selectedZitate = array(); //$selectedZitate als array definieren

    for ( $x=0$x<1$x++ ) // Ziel ist es, nur ein Zitat auszugeben
    {
    if (!
    in_array$zitatID$selectedZitate)) // wenn die ID noch nicht vorhanden ist
    {
    $selectedZitate[] = $zitatID// dann abspeichern 
    $ergebnis mysql_query"SELECT * FROM $table WHERE ID = $zitatID); // Abfrag
    $datensatz mysql_fetch_row$ergebnis ); // Datensatz zur ID bekommen

    //Hier kommt die Ausgabe
    print "<hr><b>ID:</b> $datensatz[0]<br><b>Spruch:</b> $datensatz[1]<br><b>Autor:</b> $datensatz[2]<br><hr>";
    }
    else
    {
    // Wenn die ID bereits vorhanden ist, soll der Zähler ($x) auf 0 gesetzt werden,
    //so somit sollte doch die schleife nochmals beginnen, und eine neue Zahl ausgeben?!
    }

    Problem:

    - Die ID wird nicht in $selectedZitate gespeichert
    - Es werden daher Zitate doppelt ausgegeben

    Was muss ich ergänzen, oder gar im Kopf umstrukturieren, damit's klappt?
     
    Gruss Alex

  5. #5
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Du kannst den Zufallszusatz auch direkt in der Abfrage angeben:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    SELECT
            *
      FROM
            $table
      ORDER BY
            RAND()
      LIMIT
            1
     
    Markus Wulftange

  6. #6
    Avatar von Naisetsu
    Naisetsu Naisetsu ist offline Mitglied Bronze
    Registriert seit
    Jun 2005
    Ort
    Schweiz
    Beiträge
    33
    Ich behaupte mal, dass dies länger Dauert, weil eine Abfrage zur DB gesendet wird, dort den Wert der ID ermittelt und wieder zurück zum script schickt, vergleicht, und das ganze von vorne, wenn vorhanden....nein das ist keine gute Idee...


    Das Problem liegt darin, dass ich jeweils einen Spruch aus der Datenbank auslese und dessen ID dann in ein array schreibe. Bei einem refresh (F5 o.ä.) soll dann die neue ID im array gesucht werden, und wenn sie bereits vorkommt wiederum eine andere/neue ID ausgeben solange, bis alle ID's (1-150) im array geschrieben sind!
    Geändert von Naisetsu (10.02.06 um 15:50 Uhr)
     
    Gruss Alex

Ähnliche Themen

  1. Array nach bestimmtem Wert durchsuchen lassen
    Von cyberc im Forum Java Grundlagen
    Antworten: 6
    Letzter Beitrag: 06.01.10, 13:25
  2. Zeile nach Wert durchsuchen
    Von zyclop im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 16.12.08, 15:18
  3. array nach einem wert durchsuchen
    Von jackobo im Forum PHP
    Antworten: 8
    Letzter Beitrag: 28.10.05, 13:36
  4. variable nach wert durchsuchen
    Von nikwithk im Forum PHP
    Antworten: 4
    Letzter Beitrag: 29.04.05, 11:53
  5. Antworten: 4
    Letzter Beitrag: 22.11.04, 23:47