+ Antworten
Ergebnis 1 bis 9 von 9

Thema: mehrere zufallsbilder ohne wiederholung

  1. #1
    TP-Veteran steff ist auf einem guten Weg Avatar von steff
    Registriert seit
    Mar 2001
    Ort
    wein4tel (ö)
    Beiträge
    1.291

    mehrere zufallsbilder ohne wiederholung

    hi, leute,

    ich möchte auf einer seite drei verschiedene bilder zufällig aus einem verzeichnis aufrufen lassen. es soll aber kein bild zwei-/dreimal angezeigt werden.

    ich hab ein brett vorm kopf und komm net ganz weiter

    so weit bin ich:
    PHP-Code:
    $verz opendir ('blabla');
    $i "0";
    while (
    $file readdir ($verz)) {
      if (!
    is_dir($file)) {
        
    $i++;
      }
    }
    closedir($verz); 

    $bild1 rand(1,$i);
    $bild2 rand(1,$i);
    // in diesem fall kann bild2 schon dasselbe sein wie bild1 
    danke für eure hilfe

  2. #2
    Registered User Radoo.de macht alles soweit korrekt
    Registriert seit
    Feb 2002
    Beiträge
    667
    .
    Geändert von Radoo.de (16.10.2003 um 03:56 Uhr)

  3. #3
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    öm. ohne ins philosophische abschweifen zu wollen:

    bilder in ein array lesen,

    dann in einer schleife die als abbruchkriterium deine max angezeigten Bilder beinhalten soll...

    array zählen,
    randomizen
    bild aus array mit der random-nummer holen
    die array-zelle löschen.

    also
    PHP-Code:
    while($i $anzahl)
    {
    $num count(bildarray);
    (
    den seed vorher hab den befehl grad net zur hand)
    $randnr rand(1,$num);
    tuwas mit... $bild[$randnr];
    unset(
    $bild[$randnr];
    $i++;

    Gehelft? Hier kannst du dich bedanken.

    mike

  4. #4
    TP-Special Mod webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User Avatar von webmichl
    Registriert seit
    Jun 2001
    Ort
    8°21' O 49°1' N
    Beiträge
    8.635
    @LF: ohne ins rechthaberische abweichen zu wollen :

    Er möchte ein Zufallsbild, nicht alle Bilder in zufälliger Reihenfolge...

    EDIT
    ARRGGH! Vergiss es. Falsch gelesen...


    [edit2]Wäre nicht $randnr=-1;while( ! bild[randnr] ) $randnr = rand(1,$num); besser?[/edit2]
    Geändert von webmichl (03.07.2003 um 17:02 Uhr)

    Gruß, der Michl



    * * * if you want them to RTFM, make a better FM! * * *


  5. #5
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    deine lösung versteh ich jetzt aber net...

    tu - solang es das bild mit der zufälligen nummer nicht gibt - eine neue nummer generieren?

    verhindert ja wieder nicht, dass zufällig ein bild doppelt angezeigt wird. oder gehört da noch mehr dazu?
    Gehelft? Hier kannst du dich bedanken.

    mike

  6. #6
    TP-Special Mod webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User Avatar von webmichl
    Registriert seit
    Jun 2001
    Ort
    8°21' O 49°1' N
    Beiträge
    8.635
    Sollte ne Ergänzung zu deinem Script sein...sorry

    Das unset löscht doch den Array-Eintrag. Bei deinem Script würde zwar nix doppelt, aber evtl bei einem Bild gar nix angezeigt

    Gruß, der Michl



    * * * if you want them to RTFM, make a better FM! * * *


  7. #7
    TP-Senior tommy-p macht alles soweit korrekt Avatar von tommy-p
    Registriert seit
    Mar 2001
    Ort
    Cottbus
    Beiträge
    231
    ich hatte dasselbe problem. bei wenigen bildern (bei vielen liesse die geschwindigkeit drastisch nach, es wäre zu umständlich) lässt sich ganz einfach eine schleife einrichten, die bei wiederholung einfach nochmal ein zufallsbild zieht.


    mein beispiel, direkt übernommen (hab bilder mit dem namen 1 bis 27.jpg im verzeichnis). du müsstest das system dann auf deine automatisch ausgelesenen dateinamen ausweiten:

    PHP-Code:
    <?
    mt_srand
    ((double)microtime()*1000000);
    $bild1mt_rand(127);

    mt_srand((double)microtime()*1000000);
    $bild2mt_rand(127);
        while(
    $bild2==$bild1){
        
    mt_srand((double)microtime()*1000000);
        
    $bild2mt_rand(127);
        }
    mt_srand((double)microtime()*1000000);
    $bild3mt_rand(127);

        while(
    $bild3==$bild1 || $bild3==$bild2){
        
    mt_srand((double)microtime()*1000000);
        
    $bild3mt_rand(127);
        }
    ?>

    ist sicherlich nicht die beste möglichkeit, aber für diesen kleinen zweck war es für mich als php-anfänger das einfachste.

    tommy-p
    Geändert von tommy-p (03.07.2003 um 21:37 Uhr)
    Phantasie ist wichtiger als Wissen,

    denn Wissen ist begrenzt.

  8. #8
    TP-Veteran steff ist auf einem guten Weg Avatar von steff
    Registriert seit
    Mar 2001
    Ort
    wein4tel (ö)
    Beiträge
    1.291
    danke für eure antworten. die idee mit dem array wars, die mich auf die richtige spur gebracht hat.

    hier nun das funktionierende script:
    PHP-Code:
    $verz opendir ('blabla');
    $bildarray = array();
    while (
    $file readdir ($verz)) {
      if (!
    is_dir($file)) {
      
    array_push($bildarray$file);    
      }
    }
    closedir($verz); 

    $rand_var array_rand($bildarray3);
    for(
    $x 0$x count($rand_var); $x++){
     echo 
    "<img src=\"blabla/$bildarray[$rand_var[$x]]\"><p>;

    thx nochmals

  9. #9
    Registered User Radoo.de macht alles soweit korrekt
    Registriert seit
    Feb 2002
    Beiträge
    667
    .
    Geändert von Radoo.de (17.10.2003 um 21:38 Uhr)

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51