FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 2015
-
25 avril 2006 à 18:44
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
26 avril 2006 à 17:40
Bon habituellement je post pas parce que je m'en tire bien... mais la c'est un peu la merde :/
Voila un extrait de ma base SQL :
TABLE voiture {
prix INT(11)
}
Et dans un de mes selects, j'ai ca :
<select name="prix">
<option value="1">Inférieur à 1000?</option>
<option value="2">Entre 1001 et 5000?</option>
<option value="3">Supérieur à 5001?</option>
</select>
Ma liste de select est bien sur plus grande que ca. Comment je peux faire pour arriver à savoir si je dois utiliser les signes < ou > ou alors un BETWEEN x AND y ?
J'ai trouvé une solution alternative qui consiste à garder la séquence SQL mais j'aurais voulu trouver un autre moyen (genre un parsing spécial ou autre).
Si quelqu'un a une idée, je suis preneur :)
Merci =)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 25 avril 2006 à 19:34
Bah si t'as des fourchettes différentes je pense que c'est la seule solution, ça sera pas gourmand et rapide à faire, car sinon t'es bon pour changer ta structure de table et tes données
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 avril 2006 à 08:09
Hello :-)
bah ouais, d'accord avec Antho.
Sinon, c'est tjrs un between ta clause, finalement, et t'es pas obligé de mettre les valeurs 1, 2 dans tes options.
On peut imaginer du 1_1000, 1001_5000 etc...
Puis un truc du genre : prix BETWEEN ('.str_replace ('_', ' AND ', $_POST['monSelect']).')
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 25 avril 2006 à 19:15
Bah je le génère dynamiquement. Pour le moment, j'ai ca :
table voitures {
prix INT(11)
}
table prix {
id INT(11), // ID AUTOINCREMENT
name VARCHAR(255), // NOM DE l'OPTION
}
Donc pour alimenter mes selects, je fais ca :
query('SELECT id, name FROM prix');
while ( $data = fetch_array() ) {
echo '<option value="'.$data['id'].'">'.$data['name'].'</option>';
}
Voila comment sont généré pour le moment mes selects.
Et la, je vois pas comment m'en sortir.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 25 avril 2006 à 19:16
Oui mais tu veux faire quoi au juste ? t'as une liste de prix, et en fonction du prix de la bagnole tu veux que le select se positionne sur le prix le plus proche ?
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 25 avril 2006 à 19:17
J'ai oublié ca :
Dans ma table voitures, le prix est affiché en clair. A savoir : 9000, ou alors 74839, ou bien 30938.
Dans ma table prix, j'ai ca :
id => autoincrement (donc on s'en cogne)
name = 'Inférieur à 1000?'; 'Entre x et y ?', 'Supérieur à z ?';
Me reste plus qu'à changer ca en requète SQL... mais suis paumé.
A moins que t'es une solution totalement différente, dans lequel des cas je suis preneur !
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 25 avril 2006 à 19:28
Voui non en faite, ca m'arrange pas...
Car j'ai des options qui sont de ce type :
<option value="1">Entre 1 et 1000</option>
<option value="2">Entre 1001 et 5000</option>
etc...
Sinon en 2 select, ouais c'est pas con... jvais voir ca :)