phpbuddy.eu
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 03.07.2003, 16:31   #1
TP-Veteran
 
Benutzerbild von steff
 
Registriert seit: Mar 2001
Ort: wein4tel (ö)
steff ist auf einem guten Weg

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
steff ist offline   Mit Zitat antworten


Alt 03.07.2003, 17:23   #2
Registered User
 
Registriert seit: Feb 2002
Radoo.de macht alles soweit korrekt
.

Geändert von Radoo.de (16.10.2003 um 04:56 Uhr).
Radoo.de ist offline   Mit Zitat antworten
Alt 03.07.2003, 17:44   #3
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
ö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
mike ist offline   Mit Zitat antworten
Alt 03.07.2003, 17:57   #4
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
@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 18:02 Uhr).
webmichl ist offline   Mit Zitat antworten
Alt 03.07.2003, 18:32   #5
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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
mike ist offline   Mit Zitat antworten
Alt 03.07.2003, 18:58   #6
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
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
webmichl ist offline   Mit Zitat antworten
Alt 03.07.2003, 22:33   #7
TP-Senior
 
Benutzerbild von tommy-p
 
Registriert seit: Mar 2001
Ort: Cottbus
tommy-p macht alles soweit korrekt
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
__________________
Phantasie ist wichtiger als Wissen,

denn Wissen ist begrenzt.

Geändert von tommy-p (03.07.2003 um 22:37 Uhr).
tommy-p ist offline   Mit Zitat antworten
Alt 04.07.2003, 11:45   #8
TP-Veteran
 
Benutzerbild von steff
 
Registriert seit: Mar 2001
Ort: wein4tel (ö)
steff ist auf einem guten Weg
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
steff ist offline   Mit Zitat antworten
Alt 15.07.2003, 01:07   #9
Registered User
 
Registriert seit: Feb 2002
Radoo.de macht alles soweit korrekt
.

Geändert von Radoo.de (17.10.2003 um 22:38 Uhr).
Radoo.de ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
mehrere zufallsbilder ohne wiederholung mehrere zufallsbilder ohne wiederholung
« Datei erzeugen | form/selector ohne "go"-schalter »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:16 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67