Checked après un while

Résolu
Gille59 Messages postés 23 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 7 octobre 2012 - 12 mars 2012 à 07:23
Gille59 Messages postés 23 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 7 octobre 2012 - 12 mars 2012 à 16:26
Bonjour,

Problème de checked après un WHILE :
Le script fonctionne sans le checked,
$taille++ est pour mettre un nombre sur le mot "taille" exemple : taille1, taille2 etc. :
----------------
$req = mysql_query("SELECT taillevet FROM taillefemme") or die ("erreur requête taillefemme");

$taille=1;
while ( $resul = mysql_fetch_array ($req))
{
$taille<=20;

echo ''.$resul['taillevet'].'';
}
----------------
Je voudrais que si la case est coché un checked se met:
Problème, ça me renvoi les nombres "taille" en 2,4,6 etc. au lieu de 1,2,3 etc.
La commande "$resultat" appelle un autre script plus haut et égualement sous un WHILE,
------------------
$req = mysql_query("SELECT taillevet FROM taillefemme") or die ("erreur requête taillefemme");

$taille=1;
while ( $resul = mysql_fetch_array ($req))
{
$taille<=20;

if ($resultat['taille'.$taille++.''] == $resul['taillevet'])
{
$checked = "checked='checked'";
} else {
$checked = "";
}
echo ''.$resul['taillevet'].'';
}
------------------
Merci pour votre aide
Cordialement

Gille59 Le gars du Nord

6 réponses

dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
12 mars 2012 à 15:38
Salut,

Tu dois pas être bien réveillé pcq c vraiment tout bête.
Il te suffit de mettre $taille++ à la fin de ta boucle while.

$req = mysql_query("SELECT taillevet FROM taillefemme") or die ("erreur requête taillefemme");

$taille=1;
while ( $resul = mysql_fetch_array ($req))
{
if ($resultat['taille'.$taille] == $resul['taillevet'])
{
$checked = 'checked="checked"';
} else {
$checked = '';
}
echo ''.$resul['taillevet'];
$taille++;
} 


Tu n'y avais pas pensé à celle là hein? mdr
J'en ai profité pour changer les guillemets de ta variable $checked.

Enjoy
3
dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
12 mars 2012 à 11:43
Salut Gille59,

C'est un problème de guillemet lorsque tu mets la variable $checked dans ton echo.
Au lieu de :
$checked = "checked='checked'"; 

Fais plutot :
$checked = 'checked="checked"'; 


Enjoy
0
dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
12 mars 2012 à 12:24
Au fait,

Premièrement, qd tu fais $taille<=20; ca te retourne 1 ou 0 dépendant du nombre s'y trouvant mais en gros ça ne sert à rien puisque tu ne t'en sert pas.
Deuxièment, bien que l'explication ne soit pas des plus exhaustives, j'ai l'impression que ton problème de taille vient des $taille++ que tu fais lors de ta vérif "$resultat['taille'.$taille++.''] == $resul['taillevet']", mais aussi lorsque tu fais l'echo en dessous où tu mets l'attribut checked.
Tu fais 2 $taille++, alors que tu veux (j'imagine) le input que tu génères ds le echo à "checked" avec un attribut "name" ayant la même valeur dans la variable "$taille" qu'au-dessus. Ce qui n'est pas le cas pour l'instant.

En suivant ton code, voilà ce que ça donne.

Imaginons $taille à 1.
Dans le if, il vaut tjs 1
Après le if, il vaut 2
Dans le echo, il vaut tjs 2
Après le echo, il vaut 3
En recommençant la boucle while, il vaut 3
Dans le if, il vaut tjs 3
Après le if, il vaut 4, ect...
0
Gille59 Messages postés 23 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 7 octobre 2012
12 mars 2012 à 14:07
Bonjour

Merci de vouloir m'aider.
J'avais bien compris que le taille++ en 2 fois donne deux fois le chiffre, d'où le saut d'un n°, de 1 à 3 ou de 2 à 4.

le if cherche les colonnes taille1, taille2 etc.
Si je ne mets pas taille++ dans le if mais directement taille1, ça ne marche que sur taille1.

Donc sans utiliser taille++, comment faire pour que le if aille chercher le taille1 le taille2 etc. ?
-------------------------

en fait pour arriver à ce que je veux sans utiliser le taille++
dans le if, j'ai dû faire un script select cherchant le id de la colonne taille.
Mais ça me fais un trop long script avec 26 appel de select en id. (pour homme et pour femme)
-----------------------------
le script que j'utilise :

$req1 mysql_query("SELECT tailleint FROM taillehomme WHERE id '1'") or die ("erreur requête taillefem1");
$tailfem1 = mysql_fetch_array ($req1);


if ($resultat['taille1'] == $tailhom1['tailleint'])
{
$checked = "checked='checked'";
} else {
$checked = "";
}
echo '
'.$tailhom1['tailleint'].' ';
-----------------------------
répété 26 fois ce qui donne un très long script, alors qu'avec le WHILE c'est beaucoup plus court.

En fait je cherche à amélioré mes scripts pour être moins lourd.


Gille59 Le gars du Nord
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gille59 Messages postés 23 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 7 octobre 2012
12 mars 2012 à 14:11
erreur dans mon copier/coller, je mets le bon script :

$req1 mysql_query("SELECT tailleint FROM taillehomme WHERE id '1'") or die ("erreur requête taillefem1");
$tailhomm1 = mysql_fetch_array ($req1);

Gille59 Le gars du Nord
0
Gille59 Messages postés 23 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 7 octobre 2012
12 mars 2012 à 16:26
A bin oui mais non, c'est trop bête, s'est nul du magasin nul.

Bin je te remercie beaucoup Enjoy

Gille59 Le gars du Nord
fouzitou.com
0
Rejoignez-nous