Formulaire prix php avec bdd

Résolu
teler Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   -  
 Mme Duchenot -
Bonjour,
je travail sur un ptit script en php pour rechercher des cathégories d'animaux sur un site(fictif) par le biais d'un formulaire! Je rencontre un problème pour les champs textes où l'on doit tapper la fourchette de prix de l'animal.*
le code à l'air de fonctionner pourtant certain animaux ne s'affichent pas alors qu'ils rentrent dans cette fourchette de prix d'achat! En gros j'ai deux trois animaux qui ne s'affichent pas et c'est tjrs les meme!

voici ma page de formulaire et la page de traitement: merci

<form method="post" action="traitement.php">

<input name="trans" id="trans1" type="radio" value="11" />
<label for="trans1">Vente</label> <br />

<input name="trans" id="trans2" type="radio" value="12" />
<label for="trans2">Location</label>


<br />
<br />


<input name="choix" id="choix1" type="radio" value="22" />
<label for="choix1">Canin</label> <br />

<input name="choix" id="choix2" type="radio" value="23" />
<label for="choix2">Rongeur</label>


<br />
<br />
<label>
Prix entre :
<input type="text" name="mini" /> et <input type="text" name="maxi" /> d'euros<br /><br />
<br />


</label>
<input type="submit" value="Valider" />



</form>


page traitement


// on teste si notre variable est déclarée
if (isset($_POST['trans'])&&($_POST['choix'])&&($_POST['mini'])&&($_POST['maxi'])){

// lancement de la requête
$sql = 'SELECT prix,type FROM produits WHERE idtrans ="'.$_POST['trans'].'" AND idcath="'.$_POST['choix'].'"AND prix BETWEEN "'.$_POST['mini'].'" AND "'.$_POST['maxi'].'"';




// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on récupère le résultat sous forme d'un tableau
$data = mysql_fetch_array($req);



while ($data = mysql_fetch_array($req)) {
// on affiche les résultats
echo 'Animal : '.$data['type'].'<br />';
echo 'Son prix : '.$data['prix'].'<br /><br />';
}




}
else {
echo 'La variable nom_proprio n\'est pas déclarée';
}
?>

2 réponses

KéCeCest ..
 
Bsoir.

Y avais déjà un $data = mysql_fetch_array($req) qui était hors de la boucle WHILE et donc non traité.

A re-tester ainsi :

page traitement


// on teste si notre variable est déclarée
if (isset($_POST['trans'])&&($_POST['choix'])&&($_POST['mini'])&&($_POST['maxi']))

{

// lancement de la requête
$sql = 'SELECT prix,type FROM produits WHERE idtrans ="'.$_POST['trans'].'" AND idcath="'.$_POST['choix'].'"AND prix BETWEEN "'.$_POST['mini'].'" AND "'.$_POST['maxi'].'"';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

while ($data = mysql_fetch_array($req))
{
// on affiche les résultats
echo 'Animal : '.$data['type'].'<br />';
echo 'Son prix : '.$data['prix'].'<br /><br />';
}

}
else
{
echo 'La variable nom_proprio n\'est pas déclarée';
}
?>
0
teler Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   5
 
C'était ça! merci!
-1
Mme Duchenot
 
Mhhh...????

"teler" levez vous s'il vous plait...

Voila.

Alors sachez "teler" mon ptit bonhomme qu'en enlevant un seul $data = mysql_fetch_array($req) vous avez du seulement récupérer un seul enregistrement dans votre boucle WHILE....ptet un lapin en plus mais ca n'explique pas d'avoir perdu initialement une souris, un lapin et un chti mulot...

Alors qu'avez vous fait de la souris et du mulot... videz vos poches "teler"...

Mhhh???...

Allez 7/20 c'est mon dernier mot "teler".
Regagnez vot' place et plus un mot.

____________________________________________________________________________________

(:>)
0