Tableaux et boucle

Mammouth du PHP | 1668 Messages

05 avr. 2008, 15:59

Bonjour a tous,
Comme certains le savent je suis amoureux des tableaux 8-)
Et j'aimerais bien lister mon tableau,
j'ai tenté la manière suivante :

<?php
$tableau=array('Catégorie 01', 'Catégorie 02');
$taille=count($tableau)-1;
?>

<p><label for="categorie">Dans quel catégorie classeriez vous votre site</label><br />
<select name="categorie" id="categorie">
<?php
for($i=0; $i=$taille; $i++)
{
echo '<option value="'.$i.'">'.$tableau[$i].'</option>';
}
?>
</select>
</p>
et à ce moment là : carnage
Image

Je pense que à viens de $i=$taille

J'ai d'ailleur un autre problème de boucle :

Parse error: syntax error, unexpected T_DOUBLE_ARROW, expecting ';' template.php on line 19

<?php // ligne artificielle
mysql_connect($url_de_la_bdd, $login, $mot_de_passe); // ligne 6
mysql_select_db($nom_de_la_bdd);

define("SECURITE", true);
include("tableau_categorie.php");
$taille=count($categories)-1;

// Gestion du fichier
$fichier = fopen('partenaires.php', 'a');

// $template[]='include("haut.php");';
$template[]="<p></p>";

for($i=0; $i=$taille; $i++)
{ // ligne 20
?>// ligne artificielle
Avant il y a la définition des paramètres de connexion et j'utilise le même tableau que de le première exemple

Merci par avance de vos réponses
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

05 avr. 2008, 16:40

Une boucle for() fonctionne comme ça :
for (initialisation compteur; itérer tant que cette condition est vraie, incrémentation compteur)
Ceci est marqué dans la doc : http://fr2.php.net/for

Alors effectivement ton intuition est bonne, ta condition ne l'est pas.

Pour ton erreur de syntaxe, je ne vois rien ici, regarde dans le fichier inclu.

Enfin, pourquoi fais-tu "-1" au retour de count() ? Ton tableau contient bien 2 éléments, à ta place je gérerais le -1 pour les indices dans les conditions de boucle, et je garderais bien une variable $taille qui vaut 2, ce serait plus logique. M'enfin là c'est toi qui voit.

Mammouth du PHP | 1668 Messages

05 avr. 2008, 16:55

J'enlève 1 pour pas que ma boucle indique le troisième membre...
C'est idiot non ???
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

05 avr. 2008, 17:00

J'ai bien compris pourquoi tu faisais ça, parceque tu as 2 éléments, numérotés 0 et 1. Je disais juste qu'à mon avis ce n'est pas l'endroit où le mettre, vu que dans ta variable $taille tu as maintenant "1", ce qui est faux puisque ton tableau contient 2 éléments. Ce qui pourrait être gênant si tu veux laréutiliser plus loin.

Mais comme je l'ai dis c'est juste une remarque et tu le gères comme tu le veux, ce n'était pas le sujet principal.

Mammouth du PHP | 1668 Messages

05 avr. 2008, 17:11

Non non tu as raison, mais je ne compte pas m'en servir plus loin
mais là ça me met que catégorie 01 même si je ne l'ais pas décrémenté...
for($i=0; $i<=$taille; $i++)
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

05 avr. 2008, 17:15

C'est quoi "ça me met", essaie d'être précis stp

Mammouth du PHP | 1668 Messages

05 avr. 2008, 17:27

Image

En gros il me manque un choix...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

05 avr. 2008, 19:39

Faisons au plus simple déjà:
<?php
$tableau=array('Catégorie 01', 'Catégorie 02');
echo '<pre>';
print_r($tableau);
echo '</pre>';

$taille = count($tableau);
for($i=0; $i < $taille; $i++) {
   echo $tableau[$i];
}
ça donne ?

Mammouth du PHP | 1668 Messages

06 avr. 2008, 09:39

hier au soir vers 19h j'ai trouvé la solution, ça venait de ma méthode :
<?php
$taille_reel=count($tableau);
$taille=$taille_reel-1;
Et là tout marche :wink:
Merci quand même ^^
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol