Checked après un while [Résolu]

Signaler
Messages postés
23
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
7 octobre 2012
-
Messages postés
23
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
7 octobre 2012
-
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

Messages postés
159
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
7 mai 2012

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
Messages postés
159
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
7 mai 2012

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
Messages postés
159
Date d'inscription
mardi 2 janvier 2007
Statut
Membre
Dernière intervention
7 mai 2012

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...
Messages postés
23
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
7 octobre 2012

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
Messages postés
23
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
7 octobre 2012

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
Messages postés
23
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
7 octobre 2012

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