recherche selon different champ

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : recherche selon different champ

par castelli » 31 mai 2005, 17:09

ps c'est moi qui vient d'ecrire et jai fai une erreur dans le code que je viens de recopier

Code : Tout sélectionner

$methode = $_POST['methode']; $motsclef = explode(" ",$motsclef); $nbr_mots = count($motsclef); $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 ($_POST['methode']){ $select .= " WHERE ".$_POST['methode']." LIKE %".$_POST['motsclefs']."%"; } $select .= " ORDER BY 'nom'"; $select .= " ASC limit ".$limite.','.$nombre; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
voila merci

par Invité » 31 mai 2005, 17:07

c 'est bon j'ai trouvé une autre solution et sa marche a poil
merci a zeus pour m'avoir autant aidé :)

Code : Tout sélectionner

$methode = $_POST['methode']; $motsclef = explode(" ",$motsclef); $nbr_mots = count($motsclef); $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 ($_POST['methode']){ $select .= " WHERE ".$_POST['methode']." LIKE %".$_POST['motsclefs']."%"; $select .= " ORDER BY 'nom'"; $select .= " ASC limit ".$limite.','.$nombre; } $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );

par zeus » 31 mai 2005, 15:26

D'ou mon post sur la récupération des POST

par castelli » 31 mai 2005, 15:16

a daccord..........

par iclo » 31 mai 2005, 15:09

il saffiche sa
SELECT nom,formule,reference,disponibilite,localisation,quantite,numero_cass,toxicite FROM produit2 WHERE 'nom' LIKE '%%'ORDER BY 'nom' ASC limit 0,20
:cry:
ta requette est synthaxiquement correcten mais la clause where accepte tout les mots, donc te renvoit tout le contenu de la table
Visiblement, la récuperation du mot clé utilisé dans le LIKE pose problême, tu ne récupère rien d'où le %%

par castelli » 31 mai 2005, 14:06

sa ma pas l'air d'etre sa par contre ya une chose qui me fait douter c'est que quand jouvre la page , par default j'ai le tableau avec tout mes produit qui s'affiche ... c est donc que la requete fonctionne nan?

par zeus » 31 mai 2005, 13:58

Remplace ces lignes et respectant bien la syntaxe !!!!

Ilne faut pas que tu est la même variable là ou j'ai marqué ICI !!!!!
Car si la config de ton serveur est comme je le pense, il arrive que ça écrase la valeur !!!!
$ICI = $_POST["ICI"]
Lignes à remplacer
$mot = $_POST["motsclef"];
$select = "SELECT nom,formule,reference,disponibilite,localisation,quantite,numero_cass,toxicite FROM produit2 WHERE '".$col."' LIKE '%$mot%'ORDER BY 'nom' ASC limit ".$limite.','.$nombre;

par castelli » 31 mai 2005, 13:52

sinon la valuer de nombre et toute en haut du bout de code que je t'ais envoyer il me semble :roll:

par castelli » 31 mai 2005, 13:51

il saffiche sa
SELECT nom,formule,reference,disponibilite,localisation,quantite,numero_cass,toxicite FROM produit2 WHERE 'nom' LIKE '%%'ORDER BY 'nom' ASC limit 0,20
:cry:

par zeus » 31 mai 2005, 13:45

non, ce que je voulais dire, c'est "Où est-ce que tu mets des valeurs dans ces variables ?"

Donne moi la requete qui est affichée quand tu fait echo $select;

par castelli » 31 mai 2005, 13:41

ASC limit ".$limite.','.$nombre.";
comme sa c bien initialiser?

par zeus » 31 mai 2005, 13:28

$motsclef = $_POST['motsclef'];
Evite de mettre le même nom, selon la configuration de ton serveur, ça peut poser des problèmes
 ASC limit ".$limite.','.$nombre;
Tu initialise bien $limite, mais pas $nombre ...

par castelli » 31 mai 2005, 13:20

bah pas de retour de resultat apres la requete (en gros sa s'affiche dans le tableau que j'ai fai precedement) :?

jte copie le truc pour que tu vois :?

Code : Tout sélectionner

$nombre = 20; // on va afficher 20 résultats par page. if (!isset($limite)) $limite = 0; // si on arrive sur la page pour la première fois // on met limite à 0. $path_parts = pathinfo($_SERVER['PHP_SELF']); $page = $path_parts['enscr_web']; $motsclef = $_POST['motsclef']; $methode = $_POST['methode']; $motsclef = explode(" ",$motsclef); $nbr_mots = count($motsclef); $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,toxicite FROM produit2 WHERE '".$methode."' LIKE '%$motsclef%'ORDER BY 'nom' ASC limit ".$limite.','.$nombre; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); echo $select; $limitesuivante = $limite + $nombre; $limiteprecedente = $limite - $nombre; $result = mysql_db_query("enscr_web", $select); echo "<table border=1><TR bgcolor=\"#CCFFCC\"><TH>Nom</TH><TH>Formule</TH><TH>Reference</TH><TH>Disponibilite</TH><TH>Localisation</TH><TH>Quantite</TH><TH>Numero_cass</TH><TH>Action</th></TR>"; while ($voir = mysql_fetch_assoc($result)) { echo"<tr> <td><font face='Verdana' size='2'>" .$voir['nom']. "</font></td> <td><font face='Verdana' size='2'>" .$voir['formule']. "</font></td> <td><font face='Verdana' size='2'>" .$voir['reference']. "</font></td> <td><font face='Verdana' size='2'>" .$voir['disponibilite']. "</font></td> <td><font face='Verdana' size='2'>" .$voir['localisation']. "</font></td> <td><font face='Verdana' size='2'>" .$voir['quantite']. "</font></td> <td><font face='Verdana' size='2'>" .$voir['numero_cass']. "</font></td> <TD><font face='Verdana' size='2'> <a href=maj.php>Commander</A></font></td></tr>"; } echo "</table>"; echo "<table border=\"0\">";echo "<tr>"; if($limite != 0) { echo '<form action="'.$page.'" method="post">'; echo "<input type='hidden' value='".$_POST['motsclef']."' name='motsclef'>"; echo '<input type="submit" value="précédents">'; echo '<input type="hidden" value="'.$limiteprecedente.'" name="limite">'; echo '</form>'; }echo "</tr>"; echo "<tr>"; if($limitesuivante < $total) { echo '<form action="'.$page.'" method="post">'; echo "<input type='hidden' value='".$_POST['motsclef']."' name='motsclef'>"; echo '<input type="submit" value="suivants">'; echo '<input type="hidden" value="'.$limitesuivante.'" name="limite">'; echo '</form>'; }echo "</tr>"; echo "</table>"; mysql_free_result($result); ?>
voila sinon avant jappel le serveur et tout mais peut pas mettre les parametre car c un truc du cnrs alors... lol

par zeus » 31 mai 2005, 13:16

Quand tu dit: "ca marche pas", tu entend quoi ?

par castelli » 31 mai 2005, 13:10

lol bah non sa marche pas ...
bon tan pis vé essayer de decortiquer ma requete on vera bien

mici encore c genti :)