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

maxxou56 53 Messages postés jeudi 28 février 2008Date d'inscription 15 février 2010 Dernière intervention - 24 mars 2008 à 20:22 - Dernière réponse : nicomilville 3498 Messages postés lundi 16 juillet 2007Date d'inscription 28 février 2014 Dernière intervention
- 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???
Afficher la suite 

22 réponses

Répondre au sujet
maxxou56 53 Messages postés jeudi 28 février 2008Date d'inscription 15 février 2010 Dernière intervention - 29 mars 2008 à 12:21
+3
Utile
Non mais malalam ce n'étais pas mon probleme, d'ailleurs c bon jai trouvé la solution
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de maxxou56
nicomilville 3498 Messages postés lundi 16 juillet 2007Date d'inscription 28 février 2014 Dernière intervention - 24 mars 2008 à 20:55
0
Utile
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 !!!
Commenter la réponse de nicomilville
maxxou56 53 Messages postés jeudi 28 février 2008Date d'inscription 15 février 2010 Dernière intervention - 24 mars 2008 à 21:01
0
Utile
toujours le même message d'erreur avec ta methode nicomilville
Commenter la réponse de maxxou56
bcmfr 137 Messages postés jeudi 18 juillet 2002Date d'inscription 20 novembre 2016 Dernière intervention - 24 mars 2008 à 22:23
0
Utile
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
@+
Commenter la réponse de bcmfr
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 25 mars 2008 à 07:32
0
Utile
Hello,

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

Si t'a besoin d'aide, MP !!!
Commenter la réponse de nicomilville
maxxou56 53 Messages postés jeudi 28 février 2008Date d'inscription 15 février 2010 Dernière intervention - 25 mars 2008 à 19:40
0
Utile
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 !!!
Commenter la réponse de maxxou56
nicomilville 3498 Messages postés lundi 16 juillet 2007Date d'inscription 28 février 2014 Dernière intervention - 25 mars 2008 à 19:52
0
Utile
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 !!!
Commenter la réponse de nicomilville
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 25 mars 2008 à 20:15
0
Utile
Hello,

$r='SELECT artiste_album, titre_album, image_album, typemusique_album, commentaires_musique FROM album where artiste_album=\''.$_GET['nomartiste'].'\'';
Commenter la réponse de malalam
maxxou56 53 Messages postés jeudi 28 février 2008Date d'inscription 15 février 2010 Dernière intervention - 25 mars 2008 à 20:34
0
Utile
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
Commenter la réponse de maxxou56
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 25 mars 2008 à 20:44
0
Utile
Mon code n'a rien à voir là-dedans : ton formulaire n'est pas soumis.
Commenter la réponse de malalam
maxxou56 53 Messages postés jeudi 28 février 2008Date d'inscription 15 février 2010 Dernière intervention - 25 mars 2008 à 21:27
0
Utile
mon code n'est pas soumis, c'est a dire
Commenter la réponse de maxxou56
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 26 mars 2008 à 01:39
0
Utile
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.
Commenter la réponse de malalam
maxxou56 53 Messages postés jeudi 28 février 2008Date d'inscription 15 février 2010 Dernière intervention - 26 mars 2008 à 19:29
0
Utile
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
Commenter la réponse de maxxou56
maxxou56 53 Messages postés jeudi 28 février 2008Date d'inscription 15 février 2010 Dernière intervention - 29 mars 2008 à 00:06
0
Utile
pas de rep???svp aidez moi
Commenter la réponse de maxxou56
nicomilville 3498 Messages postés lundi 16 juillet 2007Date d'inscription 28 février 2014 Dernière intervention - 29 mars 2008 à 08:31
0
Utile
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 !!!
Commenter la réponse de nicomilville
maxxou56 53 Messages postés jeudi 28 février 2008Date d'inscription 15 février 2010 Dernière intervention - 29 mars 2008 à 11:12
0
Utile
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>
Commenter la réponse de maxxou56
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 29 mars 2008 à 11:41
0
Utile
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.
Commenter la réponse de malalam
nicomilville 3498 Messages postés lundi 16 juillet 2007Date d'inscription 28 février 2014 Dernière intervention - 29 mars 2008 à 12:12
0
Utile
Salut malalam,

Très bon exemple lol

Si t'a besoin d'aide, MP !!!
Commenter la réponse de nicomilville

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

pb requete sql page php (notion $_get, $_post) - page 2