Formulaire de recherche
guez
-
guez -
guez -
Bonjour,a tous
j'ai un problème au niveau de l'affichage du résultat de mon formulaire de recherche. au fait j'ai un formulaire de recherche auto en html composer de 3 champs(marque+modèle+prix) qui appel un fichier php qui affiche le résultat de la recherche.mais le problème qui se pose a moi est au niveau de ma requête sql, je n'arrive pas a avoir une requête qui sélectionne tous les véhicules don la marque et le modèle sont identique lorsque le champ prix n'est pas sélectionne.si le prix est sélectionne alors on affiche tous les véhicules don la marque+ le modèle+ le prix sont identique.
j'ai un problème au niveau de l'affichage du résultat de mon formulaire de recherche. au fait j'ai un formulaire de recherche auto en html composer de 3 champs(marque+modèle+prix) qui appel un fichier php qui affiche le résultat de la recherche.mais le problème qui se pose a moi est au niveau de ma requête sql, je n'arrive pas a avoir une requête qui sélectionne tous les véhicules don la marque et le modèle sont identique lorsque le champ prix n'est pas sélectionne.si le prix est sélectionne alors on affiche tous les véhicules don la marque+ le modèle+ le prix sont identique.
A voir également:
- Formulaire de recherche
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Formulaire de reclamation instagram - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
9 réponses
Et si tu nous donnais le script que tu as élaboré pour faire la recherche mysql, mêê s'il ne marche pas ce sera une base de départ utile.
ok, voici le script:
$retour_messages=mysql_query("SELECT * FROM autos WHERE (make= $A AND model= $b) AND price= '$d' ORDER BY id ") or die("Echec de selection");
while($donnees_messages=mysql_fetch_array($retour_messages)) // On lit les entrées une à une grâce à une boucle
{
echo '
<span class="Style18">Nom :</span> <span class="Style20">'.stripslashes($donnees_messages['model']).' </span><br>
...
'
;
}
lorsqu'on selection pas le champ prix il ramène la valeur -1 dans les variable d'ou n'affiche rien
cordialement
$retour_messages=mysql_query("SELECT * FROM autos WHERE (make= $A AND model= $b) AND price= '$d' ORDER BY id ") or die("Echec de selection");
while($donnees_messages=mysql_fetch_array($retour_messages)) // On lit les entrées une à une grâce à une boucle
{
echo '
<span class="Style18">Nom :</span> <span class="Style20">'.stripslashes($donnees_messages['model']).' </span><br>
...
'
;
}
lorsqu'on selection pas le champ prix il ramène la valeur -1 dans les variable d'ou n'affiche rien
cordialement
l'extrait suivant devrait faire l'affaire :
$query = "SELECT * FROM autos WHERE make='" . $A . "' AND model='" . $b . "'"; if( $d != -1 ) $query .= " AND price=" . $d; $query .= " ORDER BY id"; $retour_messages = mysql_query( $query ) or die( "Echec de selection" );
Merci a vous,car le script marche a merveille, mais il se trouve que je suis confronté a un autre problème.
je voudrais ajouter un prix maximal,d'où
$d=prix mini et$e=prix max
comment faire la requête qui affiche les véhicules qui se trouve dans l'interval [$d;$d]
merci de me venir en aide
je voudrais ajouter un prix maximal,d'où
$d=prix mini et$e=prix max
comment faire la requête qui affiche les véhicules qui se trouve dans l'interval [$d;$d]
merci de me venir en aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
OK SA MARCHE MAIS JE VOUDRAIS SAVOIR S'IL EST POSSIBLE D'IMPOSER LE PRIX MAXI SOIT TOUJOUR SUPPERIEUR AU PRIX MINIMAL.
<select name='prix' id='autos' onchange='go()'>
<option value='-1'>de</option>
<?
$prix1 = mysql_query("SELECT DISTINCT price FROM autos ORDER BY price DESC");
while($row = mysql_fetch_assoc($prix1)){
echo "<option value='".$row["price"]."'>".$row["price"]."</option>";
}
?>
</select>
<select name='prix2' id='autos' onchange='go()'>
<option value='-1'>jusqu'à</option>
<?
$prix2 = mysql_query("SELECT DISTINCT price FROM autos ORDER BY price DESC");
while($row = mysql_fetch_assoc($prix2)){
echo "<option value='".$row["price"]."'>".$row["price"]."</option>";
}
?>
</select>
<select name='prix' id='autos' onchange='go()'>
<option value='-1'>de</option>
<?
$prix1 = mysql_query("SELECT DISTINCT price FROM autos ORDER BY price DESC");
while($row = mysql_fetch_assoc($prix1)){
echo "<option value='".$row["price"]."'>".$row["price"]."</option>";
}
?>
</select>
<select name='prix2' id='autos' onchange='go()'>
<option value='-1'>jusqu'à</option>
<?
$prix2 = mysql_query("SELECT DISTINCT price FROM autos ORDER BY price DESC");
while($row = mysql_fetch_assoc($prix2)){
echo "<option value='".$row["price"]."'>".$row["price"]."</option>";
}
?>
</select>
Plusieurs solutions :
1. ajouter dans le script Go un contrôle
2. ajouter dans chaque select un test pour ne générer que les <option> valides. Dans ce cas, le script Go doit régénérer la page.
Deux remarques :
1. il est dommage de faire deux fois la même requête : tu devrais n'en faire qu'une et repositionner le pointeur au début de la seconde boucle (cf. fonction mysql_data_seek
2. une recommandation que je considère comme fondamentale : mieux présenter ton code en respectant les indentations qui montrent les blocs logiques et en séparant opérateurs, opérantes etc... par des espaces.
Ton script devrait être écris :
Ceci permet :
- d'écrire plus vite un code plus fiable
- de déboguer plus vite
- d'analyser plus vite ton code pour un oeil extérieur.
1. ajouter dans le script Go un contrôle
2. ajouter dans chaque select un test pour ne générer que les <option> valides. Dans ce cas, le script Go doit régénérer la page.
Deux remarques :
1. il est dommage de faire deux fois la même requête : tu devrais n'en faire qu'une et repositionner le pointeur au début de la seconde boucle (cf. fonction mysql_data_seek
2. une recommandation que je considère comme fondamentale : mieux présenter ton code en respectant les indentations qui montrent les blocs logiques et en séparant opérateurs, opérantes etc... par des espaces.
Ton script devrait être écris :
<select name='prix' id='autos' onchange='go()'> <option value='-1'>de</option> <? $prix1 = mysql_query( "SELECT DISTINCT price FROM autos ORDER BY price DESC" ); while( $row = mysql_fetch_assoc( $prix1 ) ) echo "<option value='" . $row["price"] . "'>" . $row["price"] . "</option>"; ?> </select> <select name='prix2' id='autos' onchange='go()'> <option value='-1'>jusqu'à</option> <? $prix2 = mysql_query( "SELECT DISTINCT price FROM autos ORDER BY price DESC" ); while( $row = mysql_fetch_assoc( $prix2 ) ) echo "<option value='" . $row["price"] . "'>" . $row["price"] . "</option>"; ?> </select>
Ceci permet :
- d'écrire plus vite un code plus fiable
- de déboguer plus vite
- d'analyser plus vite ton code pour un oeil extérieur.
je vous remercie pour vos conseils.mais je saisi pas bien les solutions.
pour veux j'ai refait mon code en html
<select name="prixmini" id="autosmini"
<option value="0">de</option>
<option value="500">500</option>
<option selected="selected" value="1000">1 000</option>
<option value="1500">1 500</option>
<option value="2000">2 000</option>
<option value="2500">2 500</option>
<option value="3000">3 000</option>
<option value="4000">4 000</option>
<option value="5000">5 000</option>
<option value="6000">6 000</option>
<option value="7000">7 000</option>
<option value="8000">8 000</option>
<option value="9000">9 000</option>
<option value="10000">10 000</option>
<option value="12500">12 500</option>
<option value="15000">15 000</option>
<option value="17500">17 500</option>
<option value="20000">20 000</option>
<option value="25000">25 000</option>
<option value="30000">30 000</option>
<option value="40000">40 000</option>
<option value="50000">50 000</option>
<option value="75000">75 000</option>
<option value="100000">100 000</option>
</select>
<select name="prixmax" id=" autosmax">
<option selected="selected" value="0">jusqu'à</option>
<option value="500">500</option>
<option value="1000">1 000</option>
<option value="1500">1 500</option>
<option value="2000">2 000</option>
<option value="2500">2 500</option>
<option value="3000">3 000</option>
<option value="4000">4 000</option>
<option value="5000">5 000</option>
<option value="6000">6 000</option>
<option value="7000">7 000</option>
<option value="8000">8 000</option>
<option value="9000">9 000</option>
<option value="10000">10 000</option>
<option value="12500">12 500</option>
<option value="15000">15 000</option>
<option value="17500">17 500</option>
<option value="20000">20 000</option>
<option value="25000">25 000</option>
<option value="30000">30 000</option>
<option value="40000">40 000</option>
<option value="50000">50 000</option>
<option value="75000">75 000</option>
<option value="100000">100 000</option>
</select>
pour veux j'ai refait mon code en html
<select name="prixmini" id="autosmini"
<option value="0">de</option>
<option value="500">500</option>
<option selected="selected" value="1000">1 000</option>
<option value="1500">1 500</option>
<option value="2000">2 000</option>
<option value="2500">2 500</option>
<option value="3000">3 000</option>
<option value="4000">4 000</option>
<option value="5000">5 000</option>
<option value="6000">6 000</option>
<option value="7000">7 000</option>
<option value="8000">8 000</option>
<option value="9000">9 000</option>
<option value="10000">10 000</option>
<option value="12500">12 500</option>
<option value="15000">15 000</option>
<option value="17500">17 500</option>
<option value="20000">20 000</option>
<option value="25000">25 000</option>
<option value="30000">30 000</option>
<option value="40000">40 000</option>
<option value="50000">50 000</option>
<option value="75000">75 000</option>
<option value="100000">100 000</option>
</select>
<select name="prixmax" id=" autosmax">
<option selected="selected" value="0">jusqu'à</option>
<option value="500">500</option>
<option value="1000">1 000</option>
<option value="1500">1 500</option>
<option value="2000">2 000</option>
<option value="2500">2 500</option>
<option value="3000">3 000</option>
<option value="4000">4 000</option>
<option value="5000">5 000</option>
<option value="6000">6 000</option>
<option value="7000">7 000</option>
<option value="8000">8 000</option>
<option value="9000">9 000</option>
<option value="10000">10 000</option>
<option value="12500">12 500</option>
<option value="15000">15 000</option>
<option value="17500">17 500</option>
<option value="20000">20 000</option>
<option value="25000">25 000</option>
<option value="30000">30 000</option>
<option value="40000">40 000</option>
<option value="50000">50 000</option>
<option value="75000">75 000</option>
<option value="100000">100 000</option>
</select>
je vous remercie pour votre aide ki a permis de le bon fonctionnement de mon code.
mais encore une préoccupation.
au finish je m'en sort avec 9 champs au niveau de mon formulaire ajax,ki son:
la make+le modèle+le kilométrage+carburant+l'année+le prix.
a la fin toutes les valeur pour la recherche d'auto le code de compte de nombre de véhicules a afficher fonction bien.le problème c ke je veux rafraichir la page chaque fois que que l'on sélectionne un champ comme le site https://suchen.mobile.de/fahrzeuge/search.html?editSearch=1&scopeId=C&country=&negativeFeatures=EXPORT&lang=fr&sortOption.sortBy=price.consumerGrossEuro&sortOption.sortOrder=ASCENDING&makeModelVariant1.makeId=&maxPrice=&minFirstRegistrationDate=&maxMileage=&fuel=&zipcode=&zipcodeRadius=&doSearch.x=77&doSearch.y=8#0
.
voici mon code de compte:
//Une connexion SQL doit être ouverte avant cette ligne...
$query = "SELECT COUNT(*) AS total FROM jos_ezautos WHERE make='" . $A . "' AND model='" . $b . "'";
if( $d != 0 )
$query .= " AND fuel LIKE'$d%'";
if( $f != -1 )
$query .= " AND price>=" . $f;
if( $g != -1 )
$query .= " AND price<=" . $g;
if( $e != -1 )
$query .= " AND year>=" . $e;
if( $h != -1 )
$query .= " AND year<=" . $h;
if( $c != -1 )
$query .= " AND power>=" . $c;
if( $i != -1 )
$query .= " AND power<=" . $h;
$query .= " ORDER BY id";
$retour_total = mysql_query( $query ) or die( "Echec de selection" ); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
mais encore une préoccupation.
au finish je m'en sort avec 9 champs au niveau de mon formulaire ajax,ki son:
la make+le modèle+le kilométrage+carburant+l'année+le prix.
a la fin toutes les valeur pour la recherche d'auto le code de compte de nombre de véhicules a afficher fonction bien.le problème c ke je veux rafraichir la page chaque fois que que l'on sélectionne un champ comme le site https://suchen.mobile.de/fahrzeuge/search.html?editSearch=1&scopeId=C&country=&negativeFeatures=EXPORT&lang=fr&sortOption.sortBy=price.consumerGrossEuro&sortOption.sortOrder=ASCENDING&makeModelVariant1.makeId=&maxPrice=&minFirstRegistrationDate=&maxMileage=&fuel=&zipcode=&zipcodeRadius=&doSearch.x=77&doSearch.y=8#0
.
voici mon code de compte:
//Une connexion SQL doit être ouverte avant cette ligne...
$query = "SELECT COUNT(*) AS total FROM jos_ezautos WHERE make='" . $A . "' AND model='" . $b . "'";
if( $d != 0 )
$query .= " AND fuel LIKE'$d%'";
if( $f != -1 )
$query .= " AND price>=" . $f;
if( $g != -1 )
$query .= " AND price<=" . $g;
if( $e != -1 )
$query .= " AND year>=" . $e;
if( $h != -1 )
$query .= " AND year<=" . $h;
if( $c != -1 )
$query .= " AND power>=" . $c;
if( $i != -1 )
$query .= " AND power<=" . $h;
$query .= " ORDER BY id";
$retour_total = mysql_query( $query ) or die( "Echec de selection" ); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.