Pb requete sql page php (notion $_get, $_post) [Résolu]

Signaler
Messages postés
53
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
15 février 2010
-
nicomilville
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
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

Messages postés
53
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
15 février 2010

Non mais malalam ce n'étais pas mon probleme, d'ailleurs c bon jai trouvé la solution
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
25
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 !!!
Messages postés
53
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
15 février 2010

toujours le même message d'erreur avec ta methode nicomilville
Messages postés
137
Date d'inscription
jeudi 18 juillet 2002
Statut
Membre
Dernière intervention
20 novembre 2016

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
@+
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
Hello,

echo '<select name="nomartiste">';
Messages postés
137
Date d'inscription
jeudi 18 juillet 2002
Statut
Membre
Dernière intervention
20 novembre 2016

pffffff.....
faut vraiment que j'ouvre les yeux moi....
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
25
moi aussi ...

Si t'a besoin d'aide, MP !!!
Messages postés
53
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
15 février 2010

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 !!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
25
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 !!!
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
Hello,

$r='SELECT artiste_album, titre_album, image_album, typemusique_album, commentaires_musique FROM album where artiste_album=\''.$_GET['nomartiste'].'\'';
Messages postés
53
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
15 février 2010

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
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
Mon code n'a rien à voir là-dedans : ton formulaire n'est pas soumis.
Messages postés
53
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
15 février 2010

mon code n'est pas soumis, c'est a dire
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
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.
Messages postés
53
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
15 février 2010

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
Messages postés
53
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
15 février 2010

pas de rep???svp aidez moi
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
25
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 !!!
Messages postés
53
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
15 février 2010

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>
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
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.
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
25
Salut malalam,

Très bon exemple lol

Si t'a besoin d'aide, MP !!!
1 2