Requette Mysql multiple

Fermé
malabarbe - 9 janv. 2008 à 17:32
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 - 10 janv. 2008 à 11:55
Bonjour,

Je suis devant un problème que je n'arrive pas a résoudre :

Voila j'ai une liste de livres dans ma base Mysql

Si je fait une requette sur la lettre A sur les titres, cela fonctionne.

Je voudrais faire une requette multiple c'est a dire :

Rechercher avec la requette des livres commancant par a et par r

Bien sur dans mon formulaire de demande j'ai fait un champ rech_1 et rech_2

voici mon code qui tourne pour rech_1, comment l'étendre pour qu'il
prenne en compte rech_2 ?

$Resultat = mysql_query("select nom,date1,VA1,HIP,DIST,Etat from produit where nom like '" . $HTTP_POST_VARS["rech_1"] . "%'");

Merci de votre aide
A voir également:

9 réponses

phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
9 janv. 2008 à 18:17
$Resultat = mysql_query("select nom,date1,VA1,HIP,DIST,Etat from produit where nom like '" . $HTTP_POST_VARS["rech_1"] . "%' OR nom like '" . $HTTP_POST_VARS["rech_2"] . "%'");
0
$HTTP_POST_VARS est obsolète, ne plus l'utiliser (d'après la doc PHP de chez PHP)
utiliser $_POST
0
Bonsoir,

Merci de vos réponces

Que j'utilise :
$HTTP_POST_VARS ou $_POST cela donne le mème résultat

En parlant de résultat, le code de Phil232 m'affiche toute la base
mais pas les deux lettres sélectionnées

Si vous voulez, je peut vous donner les sources et la base de donnée pour test

A vous lire
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
10 janv. 2008 à 10:34
comprends pas. il s'en fout du WHERE ? c'est ça ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

Je joint mon source qui tourne seulement avec une seule requette,
voir si il est possible de l'adapter pou une double ou triple requette !

<html>
<BODY BGCOLOR=aqua>

<p>
<a href="sommaire.php">Retour</a>  
<p>
<center>
<TABLE bgcolor='#DDF0D0' bordercolor='black' border=1 cellpadding=5>
<tr>
<th> Nom </th>
<th> Date1 </th>
<th> VA1 </th>
<th> HYP </th>
<th> DIST</th>
<th> Etat </th>
</tr>

<?

// Connexion à MySQL
$Connexion = mysql_connect ("localhost", "root", "");
if ($Connexion) {
// Choix de la database
if (mysql_select_db("produit") == false ) {
echo ("Changement de base impossible <BR>");
}

// Exemple de SELECT
$Resultat = mysql_query("select nom,date1,VA1,HIP,DIST,Etat from produit where nom like '" . $_POST["Rech_1"] . "%'");

if ($Resultat)
{
if (mysql_num_rows($Resultat)> 0)
{
// Boucle de récupération des lignes résultat
while($Ligne = mysql_fetch_array($Resultat))
{

?>
<tr>
<td><?= $Ligne["nom"] ?></td>
<td><center><?= $Ligne["date1"] ?></center></td>
<td><center><?= $Ligne["VA1"] ?></center></td>
<td><center><?= $Ligne["HIP"] ?></center></td>
<td><center><?= $Ligne["DIST"] ?></center></td>
<td><center><?= $Ligne["Etat"] ?></center></td>
</tr>
<?
}
}

// Libération de la requête
mysql_free_result($Resultat);
}

else {
echo ("Requête incorrecte");
}
} else {
echo ("Connexion impossible <BR>");
}
mysql_close ($Connexion);

?>
</BODY>
</html>

Merci de regarder
0
Bonjour

En parlant de résultat, le code de Phil232 m'affiche toute la base
ça aurait dû marcher,tu n'avais sûrement rien mis dans rech_2
0
Oui, c'est la le problème

Si un des deux champ se saisie est vide
alors cela affiche tiute la base

Il faidrais que cela tourne qu'il y ai une ou deux requette
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
10 janv. 2008 à 11:43
allez, un petit effort quand-même

if ($_POST["Rech_2"]) == ''
{
$Resultat = mysql_query("select nom,date1,VA1,HIP,DIST,Etat from produit where nom like '" . $_POST["Rech_1"] . "%'");
}
else
{
$Resultat = mysql_query("select nom,date1,VA1,HIP,DIST,Etat from produit where nom like '" . $HTTP_POST_VARS["rech_1"] . "%' OR nom like '" . $HTTP_POST_VARS["rech_2"] . "%'");
}
0
$HTTP_POST_VARS grrrr... ;-)
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178 > le père
10 janv. 2008 à 11:55
ça vaaaaaaaa. il sera quand-même capable de taper qq fois sur delete pour enlever les carctères offensifs. s'il ne l'est pas, tant pis
0
J'avais trouvé cela

// Si variables vides
if ($_POSTS["Rech_1"]==FALSE)
{$_POST["Rech_1"]="zzzzz";}

if ($_POST["Rech_"]==FALSE)
{$_POST["Rech_"]="zzzzz";}


Désolé pour le $HTTP_POST_VARS grrrr... ;-),

mais j'avais pris une ancienne source !!!

Quel code est le meilleur ?
0