Pb requete sql page php (notion $_get, $_post)

Résolu
maxxou56 Messages postés 53 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 15 février 2010 - 24 mars 2008 à 20:22
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 29 mars 2008 à 12:34
je souhaiterais afficher la discographie par artiste apres avoir selectionner ce dernier parmis une liste
Lorsque je teste ma page sql je reçois le mesage d'erreur suivnant "Erreur lors de la requête SQL !!! "



Voila mon code:


<html>
<head>
<title>Musiceo - Discographie</title>
</head>

<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$password = '';
$db = 'musiceo';

// connection à la DB
$connexion=mysql_connect($host,$user,$password) or die ('Erreur lors de la connexion au serveur !!! ');
mysql_select_db($db,$connexion) or die ('Erreur lors de la connexion à la base de données !!! ');

$sql='SELECT nom_artiste FROM artiste';
$rep=mysql_query($sql,$connexion) or die ('Erreur lors de la requête SQL !!! ');
echo 'Selectionner un artiste :
';
echo '<form method="GET">';
echo '<select>';
while($row = mysql_fetch_array($rep)) {
echo'<option name="nomartiste">'.$row["nom_artiste"].'</option>';
}
echo '</select>';
echo '</form>';

// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements

$r='SELECT artiste_album, titre_album, typemusique_album, commentaires_musique FROM album where artiste_album="$_GET["nomartiste"]."';
$req=mysql_query($r,$connexion) or die ('Erreur lors de la requête SQL !!! ');
//nombre de lignes rapportées

$nblignes=mysql_num_rows($req);
$i=0;
echo"
Il y a $nblignes albums enregistrés dans la base
";
// debut du tableau
echo ''.\"\n\";
// première ligne on affiche les titres
echo '----
';
echo 'ARTISTE, ';
echo 'ALBUM, ';
echo 'CATEGORIE, ';
echo 'DESCRIPTION, ';
echo ''.\"\n\";
// lecture et affichage des résultats, 1 résultat par ligne.
while($row = mysql_fetch_array($req)) {
echo '----
';
echo ''.$row["artiste_album"].', ';
echo ''.$row["titre_album"].', ';
echo ''.$row["typemusique_album"].', ';
echo ''.$row["commentaires_musique"].', ';
echo ''.\"\n\";
}
echo '
'."\n";
// fin du tableau.

// on libère le résultat
mysql_free_result($req);
mysql_free_result($rep);
?>

</html>


L'erreur se situe pour la requete $r en fait je ne sais pas comment introduire la variable du select
est ce quil faut utiliser un $_get, $_post ou autre???

22 réponses

maxxou56 Messages postés 53 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 15 février 2010
29 mars 2008 à 12:21
Non mais malalam ce n'étais pas mon probleme, d'ailleurs c bon jai trouvé la solution
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
24 mars 2008 à 20:55
Salut,

Essaye comme ça :

$r = "SELECT artiste_album, titre_album, typemusique_album, commentaires_musique FROM album where artiste_album='".$_GET["nomartiste"]."'";

Si t'a besoin d'aide, MP !!!
0
maxxou56 Messages postés 53 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 15 février 2010
24 mars 2008 à 21:01
toujours le même message d'erreur avec ta methode nicomilville
0
bcmfr Messages postés 137 Date d'inscription jeudi 18 juillet 2002 Statut Membre Dernière intervention 20 novembre 2016
24 mars 2008 à 22:23
slt
$r = "SELECT artiste_album, titre_album, typemusique_album, commentaires_musique FROM album where artiste_album='$_GET[nomartiste]'";

si ca marche pas remplace ta requete par:
$r='SELECT artiste_album, titre_album, typemusique_album, commentaires_musique FROM album where artiste_album="$_GET["nomartiste"]."';
$req=mysql_query($r,$connexion) or die (mysql_error());
 et dit nous le message d'erreur
@+
0

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

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 mars 2008 à 07:32
Hello,

echo '<select name="nomartiste">';
0
bcmfr Messages postés 137 Date d'inscription jeudi 18 juillet 2002 Statut Membre Dernière intervention 20 novembre 2016
25 mars 2008 à 09:03
pffffff.....
faut vraiment que j'ouvre les yeux moi....
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
25 mars 2008 à 16:21
moi aussi ...

Si t'a besoin d'aide, MP !!!
0
maxxou56 Messages postés 53 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 15 février 2010
25 mars 2008 à 19:40
Voila mon nouveau code:


<html>
<head>
<title>Musiceo - Discographie</title>
</head>

<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$password = '';
$db = 'musiceo';

// connection à la DB
$connexion=mysql_connect($host,$user,$password) or die ('Erreur lors de la connexion au serveur !!! ');
mysql_select_db($db,$connexion) or die ('Erreur lors de la connexion à la base de données !!! ');

$sql='SELECT nom_artiste FROM artiste';
$rep=mysql_query($sql,$connexion) or die ('Erreur lors de la requête SQL !!! ');
echo 'Selectionner un artiste :
';
echo '<form method="GET">';
echo '<select name="nomartiste">';
while($row = mysql_fetch_array($rep)) {
echo'<option name="nom_artiste">'.$row["nom_artiste"].'</option>';
}
echo '</select>';
echo '</form>';

// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements

$r='SELECT artiste_album, titre_album, image_album, typemusique_album, commentaires_musique FROM album where artiste_album="$_GET["nomartiste"]"';
$req=mysql_query($r,$connexion) or die ('Erreur lors de la requête SQL !!! ');
//nombre de lignes rapportées

$nblignes=mysql_num_rows($req);
$i=0;
echo"
Il y a $nblignes albums enregistrés dans la base
";
// debut du tableau
echo ''.\"\n\";
// première ligne on affiche les titres
echo '----
';
echo 'ARTISTE, ';
echo 'ALBUM, ';
echo 'CATEGORIE, ';
echo 'DESCRIPTION, ';
echo ''.\"\n\";
// lecture et affichage des résultats, 1 résultat par ligne.
while($row = mysql_fetch_array($req)) {
echo '----
';
echo ''.$row["artiste_album"].', ';
echo '
'.$row["titre_album"].', ';
echo ''.$row["typemusique_album"].', ';
echo ''.$row["commentaires_musique"].', ';
echo ''.\"\n\";
}
echo '
'."\n";
// fin du tableau.

// on libère le résultat
mysql_free_result($req);
mysql_free_result($rep);
?>

</html>


Je reçois toujours le même message d'erreur

Erreur lors de la requête SQL !!!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
25 mars 2008 à 19:52
Salut,

$r='SELECT artiste_album, titre_album, image_album, typemusique_album, commentaires_musique FROM album WHERE artiste_album="$_GET["nomartiste"]"';

Je ne sais pas si l'orthographe compte en SQL mais on ne sait jammais, essai le code ci-dessus, je ne suis pas sur que SQL n'est pas sensible a la casse !!!

Si t'a besoin d'aide, MP !!!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 mars 2008 à 20:15
Hello,

$r='SELECT artiste_album, titre_album, image_album, typemusique_album, commentaires_musique FROM album where artiste_album=\''.$_GET['nomartiste'].'\'';
0
maxxou56 Messages postés 53 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 15 février 2010
25 mars 2008 à 20:34
Avec le code de malalam:

$r='SELECT artiste_album, titre_album, image_album, typemusique_album, commentaires_musique FROM album where artiste_album=\''.$_GET['nomartiste'].'\'';

Voila ce qui s'affiche lorsque je teste la page:


Selectionner un artiste :
(ma liste d'artiste)

Notice: Undefined index: nomartiste in C:\Program Files\EasyPHP 2.0b1\www\Site AP Musiceo(3)\artiste.php on line 31

Il y a 0 albums enregistrés dans la base

ARTISTE ALBUM CATEGORIE DESCRIPTION
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 mars 2008 à 20:44
Mon code n'a rien à voir là-dedans : ton formulaire n'est pas soumis.
0
maxxou56 Messages postés 53 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 15 février 2010
25 mars 2008 à 21:27
mon code n'est pas soumis, c'est a dire
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 mars 2008 à 01:39
Ton formulaire n'est pas soumis. Tu affiches un select, et tu fais une requête avec le résultat du select juste après : ça ne marche pas comme ça, un formulaire. Tes variables n'existent qu'après soumission du formulaire et donc retour vers le serveur.
Je te conseille de lire quelques tutos sur les formulaires html et leur traitement côté serveur.
0
maxxou56 Messages postés 53 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 15 février 2010
26 mars 2008 à 19:29
quest ce que je dois faire concretement? jai regardé les tutaux pour realiser mon code mais bon ça ne ma pas empecher de faire lerreur
0
maxxou56 Messages postés 53 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 15 février 2010
29 mars 2008 à 00:06
pas de rep???svp aidez moi
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
29 mars 2008 à 08:31
tu dois dabord valider le formulaire, car tant qu'il n'est pas soumis tes variables $_POST et $_GET n'existent pas

Si t'a besoin d'aide, MP !!!
0
maxxou56 Messages postés 53 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 15 février 2010
29 mars 2008 à 11:12
Voila mon nouveau code ms cela ne me valide toujours pas mon formulaire.

<html>
<head>
<title>Musiceo - Artistes</title>
</head>

<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$password = '';
$db = 'musiceo';

// connection à la DB
$connexion=mysql_connect($host,$user,$password) or die ('Erreur lors de la connexion au serveur !!! ');
mysql_select_db($db,$connexion) or die ('Erreur lors de la connexion à la base de données !!! ');

$sql='SELECT nom_artiste FROM artiste';
$rep=mysql_query($sql,$connexion) or die ('Erreur lors de la requête SQL !!! ');
echo 'Selectionner un artiste :
';
echo '<form method="GET">';
echo '<select name="nomartiste">';
while($row = mysql_fetch_array($rep)) {
echo'<option name="nom_artiste">'.$row["nom_artiste"].'</option>';
}
echo '</select>';
echo '';
echo '</form>';

// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements

$r='SELECT nom_artiste, image_artiste, type_musique, nationalité_artiste, presentation_artiste FROM artiste, album where artiste_album=nom_artiste';// and nom_artiste=\''.$_GET['nomartiste'].'\'';
//$r='SELECT artiste_album, titre_album, image_album, typemusique_album, commentaires_musique FROM album where artiste_album="$_GET["nomartiste"]"';
$req=mysql_query($r,$connexion) or die ('Erreur lors de la requête SQL !!! ');
//nombre de lignes rapportées

$nblignes=mysql_num_rows($req);
$i=0;
echo"
Il y a $nblignes albums enregistrés dans la base
";
// debut du tableau
echo ''.\"\n\";
// première ligne on affiche les titres
echo '----
';
echo 'ARTISTE, ';
echo 'CATEGORIE, ';
echo 'DESCRIPTION, ';
echo ''.\"\n\";
// lecture et affichage des résultats, 1 résultat par ligne.
while($row = mysql_fetch_array($req)) {
echo '----
';
echo '
'.$row["nom_artiste"].', ';
echo ''.$row["type_musique"].', ';
echo ''.$row["presentation_artiste"].', ';
echo ''.\"\n\";
}
echo '
'."\n";
// fin du tableau.

// on libère le résultat
mysql_free_result($req);
//mysql_free_result($rep);
?>

</html>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 mars 2008 à 11:41
Hello,

pour valider, il faut cliquer sur le bouton hein...donc à ton avis, il se passe quoi la 1ère fois où tu arrives sur ta page ? Le formulaire s'affiche (sans être soumis), PUIS tu fais tes requêtes avec des variables qui n'existent pas (puisque le formulaire n'a pas été soumis). Donc forcément, elles ne fonctionnent pas. PHP n'est pas devin, il ne peut pas savoir ce que tu veux afficher AVANT que ton formulaire ne soit soumis. Ca nne me parait pas difficile à comprendre. Regarde cet exemple de la vraie vie :
Tu rencontres un gars (c'est ton formulaire).
Tu veux lui dire bonjour mais tu ne connais pas snom puisqu'il ne s'est pas encore présenté (c'est ta requête). Donc tu bugges, tu lui fais :
Bonjour heu....
Puis il se présente (ton formulaire est soumis) : je m'appelle toto.
Là tu lui dis à nouveau bonjour donc, mais tu ne bugges plus, puisque tu sais son nom :
Bonjour toto.
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
29 mars 2008 à 12:12
Salut malalam,

Très bon exemple lol

Si t'a besoin d'aide, MP !!!
0
Rejoignez-nous