[MYSQL] Syntaxe Recherche

Fermé
Blanc57 Messages postés 369 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 27 janvier 2020 - 16 avril 2007 à 19:18
Blanc57 Messages postés 369 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 27 janvier 2020 - 21 avril 2007 à 12:59
Bonjour à tous,

Je suis débutant avec PHP, MySQL.
J'essaye de découvrir en créant des sites bidon pour m'exercer.

J'ai donc entrepris un site me permettant de créer une base de données de mes chansons.
J'ai un formulaire avec 5 entrées (artiste,album,titre,num,genre) qui enregistre cela dans une base MySQL.
J'en suis à la consultation de la base.

Je souhaite donc permettre de faire une recherche quelques soient les critère entrés. J'ai commencé avec une syntaxe du genre:
SELECT * FROM table WHERE artiste=$artiste AND album=$album
Mais ça ne me permet que de rechercher selon les critères : artiste et album. J'aimerai qu'il soit possible d'obtenir les infos quelques soient les champs remplis dans la recherche : artiste et titre, ou artiste et album et numero, ou album et genre, etc...
Seulement j'ai recherché à gauche à droite, je n'ai pas trouvé la syntaxe correspondante.
J'éspère avoir été assez clair dans l'exposé de mon problême...

Merci d'avance pour toute l'aide que vous pourrez m'apporter.

;)
A voir également:

4 réponses

Profil bloqué
17 avril 2007 à 18:26
essai ceci cette requete:
$req="SELECT * FROM table WHERE artiste='$artiste' AND album='$album'
AND titre='$titre' AND num='$number' AND genre='$genr' ";
0
Blanc57 Messages postés 369 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 27 janvier 2020 73
17 avril 2007 à 18:57
J'ai essayé, en utilisant un mysql_fetch_array(), mais ça ne fonctionne pas...

Mon but est que peu importe les critères de recherche fournis, on retournera les valeures manquantes...

J'ai encore cherché su le net, j'ai trouvé les manuels MySQL et compagnie, mais pas moyen d'y trouver ce que je veux...
0
Profil bloqué
17 avril 2007 à 19:10
donne le code que je vois...
0
Blanc57 Messages postés 369 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 27 janvier 2020 73
18 avril 2007 à 04:39
Voici le code :

<html>
<head>
<title> Resultat de la recherche </title>
</head>
<body>
<body bgcolor=#EEEEEE>
<div align=center>
<font color=#008822>
<h1>Resultat de la recherche</h1>
</font>
<br><br><br>
<?php
$artiste2=$_POST['artiste2'];
$album2=$_POST['album2'];
$titre2=$_POST['titre2'];
$num2=$_POST['num2'];
$genre2=$_POST['genre2'];
mysql_connect("localhost","root","");
mysql_select_db('musiclib');
$reponse=mysql_query("SELECT * FROM title WHERE artiste='$artist2' AND album='$album2' AND titre=$titre2' AND num='$num2' AND genre='$genre2'");
while ($donnees=mysql_fetch_array($reponse) )
{
?>
Artiste :
<?PHP
echo $donnees['artiste'];
?>
<br>
Album :
<?PHP
echo $donnees['album'];
?>
<br>
Titre :
<?PHP
echo $donnees['titre'];
?>
<br>
Piste numero :
<?PHP
echo $donnees['num'];
?>
<br>
Genre :
<?PHP
echo $donnees['genre'];
mysql_close();
}
?>
<br><br><br><br>
<a href="/index.php">Nouvel Enregistrement</a><br>
<a href="/consult.php">Consulter la base</a>
</align>
</body>

C'est sur la partie en gras que je bloque, pour l'instant c'est faux...

Là il s'agit de la page affichant les résultats, la page précedente est un formulaire ou l'on peut entrer 5 critères de recherches enregistrés sous forme de variables envoyées à cette page par POST. Je souhaiterai que peu importe les critères entrés, la base sorte les enregistrements correspondants...

Merci encore ;)
0
Profil bloqué
18 avril 2007 à 09:36
ton code parait normale.Mais que donne le résultat?
0
Blanc57 Messages postés 369 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 27 janvier 2020 73 > Profil bloqué
21 avril 2007 à 12:59
Ca ne m'affiche rien lorsque je fait une recherche...
Pas de message d'erreur, mais ça ne fonctionne pas. Que ce soit en mettant 2 variables sur 5, ou les 5, pas de résultat affiché.
Et n'étant que débutant, je ne sais quelle syntaxe utiliser...

Encore un grand merci à tous ceux qui ont pris le temps de se pencher sur mon problême... ;)
0
Utilisateur anonyme
18 avril 2007 à 05:05
Salut ,
Fais attention au simple cote et au double cote .
[code]
$reponse=mysql_query("SELECT * FROM title WHERE artiste=".$_POST["artiste2"] AND album=".$_POST["album2"] AND titre=".$_POST["titre2"] AND num=".$_POST["num2"] AND genre=".$_POST["genre2"]);
[/code]

Perso c'est ce que j'ai fais dans ma requete j'en ai bavé car la programmation c'est pas mon truc :

[code]
$link = mysql_connect("localhost","clients","");//connexion local
mysql_select_db("bata",$link); // connection a la base 'bata'
$query = " select num_art,num_mag,type_grille,total_stock,stockpt1,stockpt2,stockpt3,stockpt4,stockpt5,stockpt6,stockpt7,stockpt8,stockpt9,stockpt10,stockpt11,stockpt12,stockpt13,stockpt14 from articles,magasins,stock,grilleshoes where
stock.magasins = magasins.num_mag AND stock.ref_art = articles.num_art AND articles.grille=grilleshoes.type_grille AND num_art = ".$_POST["num_art"];
[/code]

Mais bon chez moi ca s'arrete a la premiére réponse trouvé , le tableau n'est pas parcouru .

Aller bon courage.
0