array, for, while...

array, for, while... - PHP - Programmation

Marsh Posté le 01-12-2004 à 15:03:41    

voila depuis tout à l'heure je suis en train de me prendre le choux avec un tableau dans une boucle... je vous explique :
 
j'ai donc mis le contenu de ma table sql dans un tableau (pour eviter de faire 8 fois la même requete en boucle sur la page)
 
voici le code :
 

Code :
  1. $table = 'fontes';
  2. $sql =  mysql_query("SELECT name, filename FROM $table ORDER BY name ASC" );
  3. $i=1;
  4. while($arrayfontes = mysql_fetch_array($sql))
  5. {
  6.  $fontes[$i]['name']=$arrayfontes['name'];
  7.  $fontes[$i]['filemame']=$arrayfontes['filename'];
  8.  $i++;
  9.    }


quand je fais un print_r... tout est bien à sa place.. comme je le voulais...
 
ensuite je fais afficher une liste dans un formulaire comme ceci :
 

Code :
  1. <select name="fontenom">
  2.           <?php
  3. for($i=1;$i<=count($fontes);$i++)
  4. {
  5.  if($fontes['$i']['filename']==$fontenom)
  6.  {
  7.  $selected="selected";
  8.  }
  9.  else
  10.  {
  11.  $selected="";
  12.  }
  13.        echo "<option value=\"".$fontes[$i]['filename']."\" $selected>".$fontes[$i]['name']."</option>\n";
  14.  
  15.    }
  16. ?>
  17.         </select>


 
alors j'ai une belle liste avec mes fontnames... mais dans le value ya rien qui s'affiche !!!  :??:  :??:  :??:  :cry:  :pt1cable:  
 
c quoi qui se passe ? je suppose que c une connerie minuscule mais là je vois pas du tout !

Reply

Marsh Posté le 01-12-2004 à 15:03:41   

Reply

Marsh Posté le 01-12-2004 à 15:08:31    

freed102 a écrit :


Code :
  1. $fontes[$i]['name']=$arrayfontes['name'];


Code :
  1. if($fontes['$i']['filename']==$fontenom)




Cherche la différence...[:dawa]
 
[edit]
 
J'ai peut-être rien dit, j'ai lu en diagonale...[:joce]


Message édité par skeye le 01-12-2004 à 15:09:58

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-12-2004 à 15:12:23    

bah non je vois pas ! j'ai deux valeurs dans mon tableau, name et filename... et $fontenom c le nom de mon champ de formulaire
 
if($fontes['$i']['filename']==$fontenom) se traduit par :
"si la valeur du champ $fontenom est egale à la valeur de mon tableau..."
 
jusque là tout me parait normal

Reply

Marsh Posté le 01-12-2004 à 15:18:17    

sauf erreur de ma part fontes['$i'] n'interprête pas $i, mais cherche la valeur qui serait à un indice appelé '$i'.
Essaie avec fontes[$i]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-12-2004 à 15:22:50    

+1 pour toi skeye! c'est sur que c'est ca!


Message édité par bob007 le 01-12-2004 à 15:23:01
Reply

Marsh Posté le 01-12-2004 à 15:28:41    

ça effectivement ça empechait d'afficher le "selected" au bon endroit... Mais je pense pas que ça empechait d'afficher le nom du fichier dans le champs du formulaire...
 
enfin cela dit je l'ai fait à la barbare... mais au moins ça marche !
 

Code :
  1. $i=1;
  2. while($arrayfontes = mysql_fetch_array($sql))
  3. {
  4.  $fontenames[$i]=$arrayfontes['name'];
  5.  $fontefiles[$i]=$arrayfontes['filename'];
  6.  $i++;
  7.    }


 
et
 

Code :
  1. <?php
  2. for($i=1;$i<=count($fontefiles);$i++)
  3. {
  4.  if($fontefiles[$i]==$fontenom)
  5.  {
  6.  $selected="selected";
  7.  }
  8.  else
  9.  {
  10.  $selected="";
  11.  }
  12.        echo "<option value=\"". $fontefiles[$i] ."\" $selected>".$fontenames[$i]."</option>\n";
  13.  
  14.    }
  15. ?>

Reply

Marsh Posté le 01-12-2004 à 15:46:32    

encore une question... est il possible que j'ai des problemes d'affichage quand je fais une succession de boucles sur ma page ? ma page s'affiche vite... Mais mes trois dernieres liste de fontes sont foireuses !
 
http://clonecopy.net/php/cartesvisite/index.php
 
... de plus quand j'envoie mon formulaire.. une fois sur deux ça part pas ! :-s :(

Reply

Marsh Posté le 01-12-2004 à 15:48:44    

Pas de raison. Montre ton code...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-12-2004 à 15:49:09    

j'ai rien dit pour la premiere question ... c reparé

Reply

Marsh Posté le 01-12-2004 à 15:53:13    

pour la seconde je suis obligé de reactualiser ma page pour que ça se valide ! :(

Reply

Marsh Posté le 01-12-2004 à 15:53:13   

Reply

Marsh Posté le 01-12-2004 à 16:03:57    

je vais reposer la question sur un autre topic

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed