[MYSQL] Syntaxe Recherche
Blanc57
Messages postés
369
Date d'inscription
Statut
Membre
Dernière intervention
-
Blanc57 Messages postés 369 Date d'inscription Statut Membre Dernière intervention -
Blanc57 Messages postés 369 Date d'inscription Statut Membre Dernière intervention -
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.
;)
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:
- [MYSQL] Syntaxe Recherche
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Recherche photo - Guide
- Mysql community server - Télécharger - Bases de données
- Je recherche une chanson - Guide
4 réponses
essai ceci cette requete:
$req="SELECT * FROM table WHERE artiste='$artiste' AND album='$album'
AND titre='$titre' AND num='$number' AND genre='$genr' ";
$req="SELECT * FROM table WHERE artiste='$artiste' AND album='$album'
AND titre='$titre' AND num='$number' AND genre='$genr' ";
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...
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...
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 ;)
<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 ;)
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... ;)
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... ;)
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.
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.