Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/06/2007, 10h10   #1
Membre actif
 
Inscription : janvier 2007
Messages : 216
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 216
Points : 199
Points : 199
Par défaut [SQL] problème d'exécution de la requête

bonjour, quel belle matinée pour rester devant sont pc à coder...
j'ai un problème que je n'arrive pas à résoudre, je vous explique :
je récupere la variable $type d'un formulaire, et je veux ensuite récuperer le contenu du champ "texte" de ma table "page_fixe" pour laquelle le champ "index" est égal au contenu de la variable $type.
Code :
1
2
3
4
5
6
7
8
9
10
 
$type = $_POST['type']; 
// la variable $type est bien égale à un entier
 
$req= "select texte from page_fixe where index = '".$type."'"; 
// index est de type INT dans la base de donnée
 
$res_req = mysql_query($req);
 
$res2_req = mysql_fetch_array($res_req);
Sur ma page web j'ai l'erreur suivante :
Citation:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/119/sdb/5/2/elmisterios/test/admin/modif_page_fixe.php on line 36
je pense qu'il me sort cette erreur car il n'arrive pas à exécuter la requete, quand je fais un echo $res_req; ,il ne m'affiche rien du tout.

merci par avance
mama07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 10h15   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Je pense que ton index est un entier donc il ne faut pas de quote autour de la valeur. Et penses a utiliser mysql_error pour comprendre ce qui se passe :
Code :
1
2
3
4
5
6
7
8
9
$type = $_POST['type']; 
// la variable $type est bien égale à un entier
 
$req= "select texte from page_fixe where index = $type"; 
// index est de type INT dans la base de donnée
 
$res_req = mysql_query($req) or die("Erreur mysql : " . mysql_error());
 
$res2_req = mysql_fetch_array($res_req);
EDIT : et penses a vérifier que $_POST['type'] est bien rempli avant de l'utiliser dans une requête!
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 10h30   #3
Membre actif
 
Inscription : janvier 2007
Messages : 216
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 216
Points : 199
Points : 199
j'ai tout bien fait comme tu me l'a dit
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
if ( !isset($_POST['type']))
		{
			$type = 1;
		}
	else
		{
			$type = $_POST['type'];
		}
 
	$req= "select texte from page_fixe where index = $type";
 
	$res_req = mysql_query($req) or die ("Erreur mysql : " . mysql_error());
 
	$res2_req = mysql_fetch_array($res_req);
et voici le message d'erreur qu'il m'affiche maintenant :

Citation:
Erreur mysql : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index = 3' at line 1
mama07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 10h37   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
ton champ index est de quel type? Essaies de remettre les quote meme si ca m'étonnerait que ca soit ça.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 11h04   #5
Membre actif
 
Inscription : janvier 2007
Messages : 216
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 216
Points : 199
Points : 199
mon champ index est de type int,
j'ai changer le code :
Code :
$req= "select texte from page_fixe where index = ".$type."";
ou comme ca :
Code :
$req= "select texte from page_fixe where index = '".$type."'";
mais rien n'y fait
mama07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 11h11   #6
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Ceci est un drôle de problème...

Si tu ajouts l'affichage de la requête, ça a bien la bonne forme ?
Code php :
1
2
$req= "select texte from page_fixe where index = $type";
$res_req = mysql_query($req) or die ("Erreur mysql $req : " . mysql_error());
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 11h21   #7
Membre actif
 
Inscription : janvier 2007
Messages : 216
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 216
Points : 199
Points : 199
salut cerila,
quand je fais un echo de ma requete
Code :
$req= "select texte from page_fixe where index = ".$type."";
, il m'affiche :

select texte from page_fixe where index = 3
mama07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 11h51   #8
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Je ne comprends pas : si ton champ index est de type int, ça devrait fonctionner !

Je sens qu'on va passer 30 posts sur le problème pour nous apercevoir à la fin que c'était un truc hyper simple mais que personne n'avait vu

Si tu mets la requête directement à la main (juste voir)
Code php :
$req = "select texte from page_fixe where index = 3";
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 12h23   #9
Membre actif
 
Inscription : janvier 2007
Messages : 216
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 216
Points : 199
Points : 199
ben je viens d'essayer et ca fais toujours la meme erreur, je vais recreer ma table pour voir si ca vient de la , mais pour l'instant je suis perdu ...
mama07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 12h29   #10
Membre actif
 
Inscription : janvier 2007
Messages : 216
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 216
Points : 199
Points : 199
je viens de recreer ma table, mais rien n'a changé
mama07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 13h08   #11
Membre actif
 
Inscription : janvier 2007
Messages : 216
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 216
Points : 199
Points : 199
Probleme résolu par mes seuls 10 petits doigts et mes quelques neurones usés.

en fait j'ai changer le nom de la clé primaire de ma table qui était index en id, et hop, comme par magie ca a fonctionné.

Merci à ceux qui ont pris le temps de m'aider

Tchô
mama07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 14h08   #12
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
index est un mot réservé. Il aurait fallu écrire la requête comme ceci :
Code :
$req = "SELECT texte FROM page_fixe WHERE `index` = '".$type."'";
Le renommer fonctionne aussi
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 14h15   #13
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Je vous avais bien dit que c'était un truc évident ! (faut vraiment que je retiennes les mots à ne pas utiliser, moi)

Bonne continuation !
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h27.


 
 
 
 
Partenaires

Hébergement Web