script qui tourne en boucle

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : script qui tourne en boucle

par Cyrano » 06 août 2006, 13:47

Non, on passera pas par MSN, j'essaye de te faire comprendre le fonctionnement et comment raisonner pour résoudre un problème.

J'avais compris que chaque numéro correspond à une image, mais ce numéro a lui-même une structure qui indique que tu dois afficher l'image en couleur ou celle en noir&blanc : c'est ça que je ne comprends pas. À moins que cette information soit ailleurs. En fin de compte, sur les 32 éléments du tableau global, tu dis n'en utiliser que 18 : qu'est-ce qui différencie ces 18 des autres ?

Dis-toi bien que si tu l'expliques convenablement (et donc que je le comprenne), ça signifie également que toi-même l'auras parfaitement compris... et tu auras résolu les 3/4 du problème tout-seul.

par Invité » 06 août 2006, 13:36

oui si tu veux ce code c'est pour battlefield 2
chaque N° corespond a une image (medaille).
les N° change pas sont predefini a l'avance.maintenant cette variable sois elle les sort ou elle les sort pas.

ps
si tu a msn sa sera peut etre plus simple
merci

par Cyrano » 06 août 2006, 13:26

...voila j'espere que tu ma compris...
heu... :roll: ... non

Tu avances trop loin dans ton raisonnement en oubliant un détail important : tu sais ce qui correspond à quoi, moi pas du tout. Je crois vaguement comprendre que chaque numéro est lui-même structuré selon un code, c'est ça ? Alors comment fonctionne ce code ?

J'ai l'impression que le contenu de ta boucle va profondément devoir être modifié :-k

par snakou » 06 août 2006, 13:20

alors voila,
en faite je voudrais juste afficher les N° "1031105" , "1031113" etc...
les un a coter des autre sur une seul ligne.et bien sur remplacer ce N° par l'image qui lui corespond.donc en visu on aura pas le N° mais une image.
en tous il y a 18 N° et pour l'exemple je vais prendre les chiffre 1 , 2 , 3 , 4 .
si la variable sort les chiffres 2 et 4 sa affiche sont image en couleur et les chiffre 1 et 3 qui sont pas sortie affiche l'image en noir et blanc etc.....
voila j'espere que tu ma compris
merci

par Cyrano » 06 août 2006, 13:04

C'est beaucoup mieux.

Bon, regarde la structure de ton tableau : tu as 32 éléments et pour chacun d'eux une valeur 'award' : Mais tu as d'autres valeurs : qu'est-ce qui correspond à quoi et par rapport à ce tableau, comment peux tu déterminer ce que tu veux afficher ? Essaye de décrire ce qui doit être fait (en français normal, on traduira en php après)

par Invité » 06 août 2006, 12:50

oups dsl tien
ICI

Code : Tout sélectionner

array(32) { [0]=> array(3) { ["award"]=> string(7) "1031105" ["level"]=> string(1) "1" ["when"]=> string(37) "samedi 24 septembre 2005 à 14h37mn17s" } [1]=> array(3) { ["award"]=> string(7) "1031109" ["level"]=> string(1) "1" ["when"]=> string(37) "vendredi 21 juillet 2006 à 14h35mn29s" } [2]=> array(3) { ["award"]=> string(7) "1031113" ["level"]=> string(1) "1" ["when"]=> string(31) "mardi 01 août 2006 à 14h08mn29s" } [3]=> array(3) { ["award"]=> string(7) "1031115" ["level"]=> string(1) "1" ["when"]=> string(39) "vendredi 23 septembre 2005 à 15h10mn31s" } [4]=> array(3) { ["award"]=> string(7) "1031119" ["level"]=> string(1) "1" ["when"]=> string(39) "mercredi 28 septembre 2005 à 09h58mn12s" } [5]=> array(3) { ["award"]=> string(7) "1031120" ["level"]=> string(1) "1" ["when"]=> string(31) "lundi 29 août 2005 à 12h43mn14s" } [6]=> array(3) { ["award"]=> string(7) "1031923" ["level"]=> string(1) "1" ["when"]=> string(34) "mercredi 31 août 2005 à 15h21mn55s" } [7]=> array(3) { ["award"]=> string(7) "1190304" ["level"]=> string(1) "1" ["when"]=> string(36) "lundi 19 septembre 2005 à 16h09mn16s" } [8]=> array(3) { ["award"]=> string(7) "1190304" ["level"]=> string(1) "2" ["when"]=> string(34) "mardi 18 juillet 2006 à 13h04mn16s" } [9]=> array(3) { ["award"]=> string(7) "1190507" ["level"]=> string(1) "1" ["when"]=> string(35) "samedi 22 juillet 2006 à 18h00mn41s" } [10]=> array(3) { ["award"]=> string(7) "1220104" ["level"]=> string(1) "1" ["when"]=> string(31) "lundi 29 août 2005 à 10h28mn10s" } [11]=> array(3) { ["award"]=> string(7) "1220104" ["level"]=> string(1) "2" ["when"]=> string(37) "vendredi 21 juillet 2006 à 14h35mn29s" } [12]=> array(3) { ["award"]=> string(7) "1220118" ["level"]=> string(1) "1" ["when"]=> string(37) "samedi 03 septembre 2005 à 17h00mn59s" } [13]=> array(3) { ["award"]=> string(7) "1220122" ["level"]=> string(1) "1" ["when"]=> string(36) "mardi 20 septembre 2005 à 22h04mn24s" } [14]=> array(3) { ["award"]=> string(7) "1220803" ["level"]=> string(1) "1" ["when"]=> string(34) "mercredi 31 août 2005 à 14h41mn06s" } [15]=> array(3) { ["award"]=> string(7) "1222016" ["level"]=> string(1) "1" ["when"]=> string(36) "jeudi 01 septembre 2005 à 22h20mn58s" } [16]=> array(4) { ["award"]=> string(7) "2051902" ["level"]=> string(1) "4" ["when"]=> string(35) "samedi 22 juillet 2006 à 15h26mn21s" ["first"]=> string(36) "jeudi 15 septembre 2005 à 16h14mn53s" } [17]=> array(4) { ["award"]=> string(7) "2051907" ["level"]=> string(2) "11" ["when"]=> string(31) "mardi 01 août 2006 à 17h11mn24s" ["first"]=> string(37) "samedi 17 septembre 2005 à 16h28mn27s" } [18]=> array(4) { ["award"]=> string(7) "2051919" ["level"]=> string(1) "6" ["when"]=> string(31) "mardi 01 août 2006 à 16h30mn58s" ["first"]=> string(39) "dimanche 04 septembre 2005 à 18h38mn51s" } [19]=> array(4) { ["award"]=> string(7) "2191608" ["level"]=> string(1) "1" ["when"]=> string(34) "mercredi 10 août 2005 à 15h49mn20s" ["first"]=> string(34) "mercredi 10 août 2005 à 15h49mn20s" } [20]=> array(3) { ["award"]=> string(7) "3040109" ["level"]=> string(1) "0" ["when"]=> string(36) "mardi 20 septembre 2005 à 14h00mn46s" } [21]=> array(3) { ["award"]=> string(7) "3040718" ["level"]=> string(1) "0" ["when"]=> string(36) "mardi 20 septembre 2005 à 12h27mn32s" } [22]=> array(3) { ["award"]=> string(7) "3150914" ["level"]=> string(1) "0" ["when"]=> string(37) "samedi 03 septembre 2005 à 15h52mn22s" } [23]=> array(3) { ["award"]=> string(7) "3151920" ["level"]=> string(1) "0" ["when"]=> string(36) "lundi 19 septembre 2005 à 16h09mn16s" } [24]=> array(3) { ["award"]=> string(7) "3190118" ["level"]=> string(1) "0" ["when"]=> string(35) "samedi 22 juillet 2006 à 18h00mn41s" } [25]=> array(3) { ["award"]=> string(7) "3190318" ["level"]=> string(1) "0" ["when"]=> string(34) "mardi 18 juillet 2006 à 18h42mn07s" } [26]=> array(3) { ["award"]=> string(7) "3190409" ["level"]=> string(1) "0" ["when"]=> string(39) "vendredi 23 septembre 2005 à 16h48mn22s" } [27]=> array(3) { ["award"]=> string(7) "3190605" ["level"]=> string(1) "0" ["when"]=> string(37) "mercredi 05 octobre 2005 à 16h18mn59s" } [28]=> array(3) { ["award"]=> string(7) "3191305" ["level"]=> string(1) "0" ["when"]=> string(37) "mercredi 05 octobre 2005 à 15h57mn31s" } [29]=> array(3) { ["award"]=> string(7) "3240102" ["level"]=> string(1) "0" ["when"]=> string(32) "samedi 27 août 2005 à 17h45mn02s" } [30]=> array(3) { ["award"]=> string(7) "3240301" ["level"]=> string(1) "0" ["when"]=> string(35) "samedi 22 juillet 2006 à 16h29mn45s" } [31]=> array(3) { ["award"]=> string(7) "3240703" ["level"]=> string(1) "0" ["when"]=> string(35) "samedi 22 juillet 2006 à 16h29mn45s" } }
voila mrci

par Cyrano » 06 août 2006, 12:36

C'est malin : tu me mets un lien vers 127.0.0.1 : si je clique dessus, ça pointe sur ma propre machine :-k

par snakou » 06 août 2006, 12:34

la reponse et null

regarde ICI

par Cyrano » 06 août 2006, 12:30

Non, si tu lisais mes réponses un peu moins en diagonale, tu saurais de quoi j'ai besoin : tu récupères un tableau (array) : je n'en connais pas la structure et de ce fait, je ne peux pas t'aider davantage. Relis une de mes précédentes réponses, je t'ai indiqué comment afficher cette structure que tu pourras ensuite reproduire ici.

par Invité » 06 août 2006, 11:27

tu veux la source de la page si c'est sa la voici :

Code : Tout sélectionner

<?php function array_combine($keys, $vals) { $i = 0; foreach ($keys as $key) $newarray[trim($key)] = trim($vals[$i++]); return $newarray; } function fillUnlockedWeapons($allData) { foreach ($allData as $aRow) { $aRow = explode("\t", $aRow); if($aRow[0] == 'D' && (trim($aRow[2]) == 's' || trim($aRow[2]) == 'n')) { $newarray[trim($aRow[1])] = trim($aRow[2]); } } return $newarray; } function fillAwards($allData) { $i = 0; foreach ($allData as $aRow) { $aRow = explode("\t", $aRow); if($aRow[0] == 'D' && count($aRow) == 5) { unset($oneAward); $oneAward['award'] = trim($aRow[1]); $oneAward['level'] = trim($aRow[2]); $oneAward['when'] = strftime("%A %d %B %Y à %Hh%Mmn%Ss", trim($aRow[3])); if(trim($aRow[4]) != '0') { $oneAward['first'] = strftime("%A %d %B %Y à %Hh%Mmn%Ss", trim($aRow[4])); } $awards[$i++] = $oneAward; } } return $awards; } $pid = '47049591'; setlocale(LC_TIME, "fr"); $awardsImages = "imag/"; // les recompences ini_set("user_agent","GameSpyHTTP/1.0"); $recompence = @file("http://bf2web.gamespy.com/ASP/getawardsinfo.aspx?pid=$pid"); $recompenses = fillAwards($recompence); echo('<h3>les r&eacute;compenses</h3><br/>'); // affiche tout les elements de $results foreach($recompenses as $recompense) { echo "<br><br> test<br><br>"; if ($recompense['award'] == 3040109) { echo '<img src="modules/bf2/imag/ruban/3040109.GIF" />'; } else { echo '<img src="modules/bf2/imag/ruban/ruban/3040109.GIF" />'; } if ($recompense['award'] == 3242303) { echo '<img src="modules/bf2/imag/ruban/3242303.GIF" />'; } else { echo '<img src="modules/bf2/imag/ruban/ruban/3242303.GIF" />'; } if ($recompense['award'] == 3240703) { echo '<img src="modules/bf2/imag/ruban/3240703.GIF" />'; } else { echo '<img src="modules/bf2/imag/ruban/ruban/3240703.GIF" />'; } if ($recompense['award'] == 3211305) { echo '<img src="modules/bf2/imag/ruban/3211305.GIF" />'; } else { echo '<img src="modules/bf2/imag/ruban/ruban/3211305.GIF" />'; } } // infos du joueur //ini_set("user_agent","GameSpyHTTP/1.0"); Une seule fois suffit... $info = file("http://bf2web.gamespy.com/ASP/getplayerinfo.aspx?pid=$pid&info=per*, cmb*, twsc, cpcp, cacp, dfcp, kila, heal, rviv, rsup, rpar, tgte, dkas, dsab, cdsc, rank, cmsc, kick, kill, deth, suic, ospm, klpm, klpr, dtpr, bksk, wdsk, bbrs, tcdr, ban, dtpm, lbtl, osaa, vrk, tsql, tsqm, tlwf, mvks, vmks, mvn*, vmr*, fkit, fmap, fveh, fwea, wtm-, wkl-, wdt-, wac-, wkd-, vtm-, vkl-, vdt-, vkd-, vkr-, atm-, awn-, alo-, abr-, ktm-, kkl-, kdt-, kkd-"); $infos = array_combine(explode("\t", $info[3]), explode("\t", $info[4])); echo('<h3>infos du joueur</h3><br/>'); foreach($infos as $key => $value) { printf("La cl&eacute; <em>%s</em> a pour valeur <em>%s</em> ou <em>%s</em> !<br/>", $key, $value, $infos[$key]); } // armes debloquees //ini_set("user_agent","GameSpyHTTP/1.0"); Une seule fois suffit... $debloquee = @file("http://bf2web.gamespy.com/ASP/getunlocksinfo.aspx?pid=$pid"); $unlocks = fillUnlockedWeapons($debloquee); echo('<h3>armes debloqu&eacute;es</h3><br/>'); foreach($unlocks as $key => $value) { printf("La cl&eacute; <em>%s</em> a pour valeur <em>%s</em> ou <em>%s</em> !<br/>", $key, $value, $unlocks[$key]); } // le rang //ini_set("user_agent","GameSpyHTTP/1.0"); Une seule fois suffit... $rangs = @file("http://bf2web.gamespy.com/ASP/getrankinfo.aspx?pid=$pid"); $stats = array_combine(explode("\t", $rangs[1]), explode("\t", $rangs[2])); echo('<h3>le rang</h3><br/>'); foreach($stats as $key => $value) { printf("La cl&eacute; <em>%s</em> a pour valeur <em>%s</em> ou <em>%s</em> !<br/>", $key, $value, $stats[$key]); } if ($infos['rank'] =="0") { echo"2ème Classe"; } if ($infos['rank'] =="1") { echo"1ere Classe"; } if ($infos['rank'] =="2") { echo"Caporal"; } if ($infos['rank'] =="3") { echo"Caporal Chef"; } if ($infos['rank'] =="4") { echo"Sergent"; } if ($infos['rank'] =="5") { echo"1er Sergent "; } if ($infos['rank'] =="6") { echo"Sergent chef"; } if ($infos['rank'] =="7") { echo"Sergent Major"; } if ($infos['rank'] =="8") { echo"Adjudant"; } if ($infos['rank'] =="9") { echo"Adjudant Chef"; } if ($infos['rank'] =="10") { echo"Adjudant Major"; } if ($infos['rank'] =="11") { echo"Adjudant Major de Corps"; } if ($infos['rank'] =="12") { echo"Second lieutenant"; } if ($infos['rank'] =="13") { echo"Lieutenant "; } if ($infos['rank'] =="14") { echo"Capitaine"; } if ($infos['rank'] =="15") { echo"Major "; } if ($infos['rank'] =="16") { echo"Lieutenant Colonel"; } if ($infos['rank'] =="17") { echo"Colonel"; } if ($infos['rank'] =="18") { echo"Général de Brigade"; } if ($infos['rank'] =="19") { echo"Major Général"; } if ($infos['rank'] =="20") { echo"Lieutenant Général"; } if ($infos['rank'] =="21") { echo"Général"; } echo " <img src='modules/bf2/imag/pe.gif' height='5' width='".$infos['vdt-1']."%'><br>".$infos['vdt-1'].""; echo("<h3>Exemples d'utilisation de variables distinctes</h3><br/>"); printf("%s qui a pour PID %s a un score de %s points !<br/>", $infos['nick'], $infos['pid'], $infos['scor']); print "Le véhicule préféré de ".$infos['nick']." est : <img src=\"http://static.bf2s.com/game-images/vehicles/vehicles_".$infos['fveh'].".jpg\" alt=\"".$infos['fveh']."\" title=\"".$infos['fveh']."\" /><br/>\r\n"; print "".$infos['nick']."\r\n"; ?>
vla mrc

par Cyrano » 06 août 2006, 11:08

Sans voir la structure du tableau retourné, impossible de te répondre.

par snakou » 06 août 2006, 10:32

ba si tu veux enfaite c'est une variable

Code : Tout sélectionner

$recompense['award']
qui recupair des info sur gamspy a cette endroi la

Code : Tout sélectionner

$recompence = @file("http://bf2web.gamespy.com/ASP/getawardsinfo.aspx?pid=47049591")";
donc ma variable

Code : Tout sélectionner

$recompense['award']
recupair les chiffre qui corespond au image.si cette variable donne le chiffre sa affiche si elle donne pas sa l'affiche pas pour sa que j'ai mis mon script comme sa.
mais comme j'ai

Code : Tout sélectionner

foreach($recompenses as $recompense) { }
c sa qui me fait tourner en boucle car si je retire le dernier } sa s'affiche normalement mais il me scan qu'un chiffre a la place des 18 .

voila

merci

par Cyrano » 06 août 2006, 09:54

Ton code n'est pas logique. Regarde bien : supposons que l'index qui est retourné dans $recompense['award'] soit 3150914, d'accord ? Suis bien le déroulement de ce qui va se passer dans ta boucle foreach :
-1- : le premier if va retourner false puisque la valeur n'est pas 3240301 : on rentre donc dans le else et on affiche l'image <img src="modules/bf2/imag/ruban/ruban/3040109.GIF" />;
-2- : le second if va faire la même réponse et on affichera l'image <img src="modules/bf2/imag/ruban/ruban/3040718.GIF" />
-3- : le troisième if en revanche renvoie true et donc on affiche l'image <img src="modules/bf2/imag/ruban/3150914.GIF" />

En clair, pour chaque index de ton tableau $recompense, on va de toutes façons afficher trois images.

Il manque des éléments pour te donner une réponse valable, il faudrait que tu nous affiches un extrait du tableau $recompenses pour qu'on voie comment définir un affichage par index. Ajoute juste avant ta boucle ce bout de code:
?>
<pre>
<?php
var_dump($recompenses);
?>
</pre>
<?php
foreach(etc...)

script qui tourne en boucle

par snakou » 06 août 2006, 08:58

Bonjour tous le monde,
voila j'ai un petit probleme avec un sripte qui tourne en boucle.
j'explique mon script :
j'ai une variable qui sort des chiffre au pif , chaque chiffre corespond a une image.
si le chiffre sort il m'affiche l'image parcontre si il sort pas il m'affiche une autre image a la place par exemple 1.jpg si le chiffre sort et 1bis.jpg si il sort pas.en tous il y a 18 nombre donc 18 image si sa sort et 18 si il sort pas.
moi mon script marche nikel car il me sort les bonne image mais ou sa bug c'est qu'il me le fait en 18 ligne et moi j'aimerais que sa tienne en une ligne.
voici mon script:

Code : Tout sélectionner

// les recompences ini_set("user_agent","GameSpyHTTP/1.0"); $recompence = @file("http://bf2web.gamespy.com/ASP/getawardsinfo.aspx?pid=$pid"); $recompenses = fillAwards($recompence); echo('<h3>les r&eacute;compenses</h3><br/>'); // affiche tout les elements de $results foreach($recompenses as $recompense) { echo "<br><br> test<br><br>"; if ($recompense['award'] == 3240301) { echo '<img src="modules/bf2/imag/ruban/3040109.GIF" />'; } else { echo '<img src="modules/bf2/imag/ruban/ruban/3040109.GIF" />'; } if ($recompense['award'] == 3040718) { echo '<img src="modules/bf2/imag/ruban/3040718.GIF" />'; } else { echo '<img src="modules/bf2/imag/ruban/ruban/3040718.GIF" />'; } if ($recompense['award'] == 3150914) { echo '<img src="modules/bf2/imag/ruban/3150914.GIF" />'; } else { echo '<img src="modules/bf2/imag/ruban/ruban/3150914.GIF" />'; } }
voila merci bien de votre aide et j'espere que quelqu'un pourra m'aidee

voici un exemple ICI
normalement il devrait avoir qu'une seul ligne d'images en noir et blanc.

merci de votre aide