par
castelli » 03 juin 2005, 16:52
Bonjour vous tous , j'ais un petit probleme qui me fai m'arrachez les cheveux
et j'aurais eu besoin de votre aide..
Je vais vous expliquer par un exemple quel est mon probleme(trop de mal a l'expliquer par ecrit )
voila
lorsque je recherche une formule d'un produit par exemple C3CL6 j'ais tout les resultat contenant C3CL6 exemple : C3CL6H9 , C3CL6O3 etc...
hors ce que j'aimerais faire c'est que si je marque dans ma barre de recherche : "C3 O3" je puisse obtenir le resultat C3CL6O3.
hors je n'y arrive pas ...
je vous copie mon code de formulaire
Code : Tout sélectionner
<center><table width="50%">
<!-- On declare le formulaire -->
<form method="POST" action='truc4.php'
<!-- Le champs à remplir par le visiteur -->
<tr><td><input type="text" name="motsclef"></td>
<td><select name="methode">
<option value="nom">Par nom</option>
<option value="reference">Par reference</option>
<option value="formule">Par forumule brute</option>
<option value="numero_cass">Par numero de CAS</option>
</select>
</td></tr>
<tr><td><input type="submit" value="Rechercher"></td></tr>
</form></table></center>
et ici ma requete
Code : Tout sélectionner
$motsclef=$_POST['motsclef'];
$methode = $_POST['methode'];
$motsclef = explode(" ",$motsclef);
$nbr_mots = count($motsclef);
$var1 = 'nom';
$var2 = 'reference';
$var3 = 'formule';
$var4 = 'numero_cass';
$select = 'SELECT count(nom) FROM produit2';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];
$select="SELECT nom,formule,reference,disponibilite,localisation,quantite,numero_cass FROM produit2";
if (isset($_POST['methode']) && $_POST['methode'] == $var1){
$select .= " WHERE ".$_POST['methode']." LIKE '%".$_POST['motsclef']."%'";
}
if (isset($_POST['methode']) && $_POST['methode'] == $var3){
$select .= " WHERE ".$_POST['methode']." LIKE '%".$_POST['motsclef']."%'";
}
if (isset($_POST['methode']) && $_POST['methode'] == $var2){
$select .= " WHERE ".$_POST['methode']." = ".$_POST['motsclef']."";
}
if (isset($_POST['methode']) && $_POST['methode'] == $var4){
$select .= " WHERE ".$_POST['methode']." = ".$_POST['motsclef']."";
}
$select .= " ORDER BY nom";
$select .= " ASC limit ".$limite.','.$nombre;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
si quelqu'un a une idée je susi preneur merci
Bonjour vous tous , j'ais un petit probleme qui me fai m'arrachez les cheveux
et j'aurais eu besoin de votre aide..
Je vais vous expliquer par un exemple quel est mon probleme(trop de mal a l'expliquer par ecrit )
voila
lorsque je recherche une formule d'un produit par exemple C3CL6 j'ais tout les resultat contenant C3CL6 exemple : C3CL6H9 , C3CL6O3 etc...
hors ce que j'aimerais faire c'est que si je marque dans ma barre de recherche : "C3 O3" je puisse obtenir le resultat C3CL6O3.
hors je n'y arrive pas ...
je vous copie mon code de formulaire
[code]<center><table width="50%">
<!-- On declare le formulaire -->
<form method="POST" action='truc4.php'
<!-- Le champs à remplir par le visiteur -->
<tr><td><input type="text" name="motsclef"></td>
<td><select name="methode">
<option value="nom">Par nom</option>
<option value="reference">Par reference</option>
<option value="formule">Par forumule brute</option>
<option value="numero_cass">Par numero de CAS</option>
</select>
</td></tr>
<tr><td><input type="submit" value="Rechercher"></td></tr>
</form></table></center>[/code]
et ici ma requete
[code]$motsclef=$_POST['motsclef'];
$methode = $_POST['methode'];
$motsclef = explode(" ",$motsclef);
$nbr_mots = count($motsclef);
$var1 = 'nom';
$var2 = 'reference';
$var3 = 'formule';
$var4 = 'numero_cass';
$select = 'SELECT count(nom) FROM produit2';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];
$select="SELECT nom,formule,reference,disponibilite,localisation,quantite,numero_cass FROM produit2";
if (isset($_POST['methode']) && $_POST['methode'] == $var1){
$select .= " WHERE ".$_POST['methode']." LIKE '%".$_POST['motsclef']."%'";
}
if (isset($_POST['methode']) && $_POST['methode'] == $var3){
$select .= " WHERE ".$_POST['methode']." LIKE '%".$_POST['motsclef']."%'";
}
if (isset($_POST['methode']) && $_POST['methode'] == $var2){
$select .= " WHERE ".$_POST['methode']." = ".$_POST['motsclef']."";
}
if (isset($_POST['methode']) && $_POST['methode'] == $var4){
$select .= " WHERE ".$_POST['methode']." = ".$_POST['motsclef']."";
}
$select .= " ORDER BY nom";
$select .= " ASC limit ".$limite.','.$nombre;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );[/code]
si quelqu'un a une idée je susi preneur merci