Problème avec une requête SELECT

Eléphanteau du PHP | 10 Messages

06 août 2009, 17:14

Bonjour,

Je reprend la programmation PHP/MySQL après un très long arrêt (5ans)

Je m'y suis remis afin de réaliser un site web pour la gestion d'emploi en ligne.

Voilà mon problème actuel est que la syntaxe de ma requête est systématiquement refusée
lorseque j'essaie de la faire fonctionner en ligne, alors que dans PHPMyAdmin elle fonctionne très bien.

$result=mysql_query("SELECT * INTO tbl_offre WHERE off_cat_num=1")or die(mysql_error());

A chaque fois la réponse du serveur est "Undeclared Variable : tbl_offre"

J'ai réussi à faire disparaitre l'erreur en ajoutant un @ devant tbl_offre, toutefois la requête plante
quand même des suites d'une erreur de syntaxe près de off_cat_num=1.

J'ai déjà essayé des dizaines de possibilitées en mettant des " ou de ' voir des ` mais à chaque fois la même erreur, je vous en supplie aider-moi !!!

Merci !

Mammouth du PHP | 2937 Messages

06 août 2009, 17:17

Essaie de formuler ta requête comme suit :

Code : Tout sélectionner

SELECT * FROM tbl_offre WHERE off_cat_num = 1
Attention ! si la colonne off_cat_num n'est pas de type numérique, ajoute des guillemets simples à 1, comme suit :

Code : Tout sélectionner

SELECT * FROM tbl_offre WHERE off_cat_num = '1'

Eléphanteau du PHP | 10 Messages

07 août 2009, 15:38

J'ai déjà essayé cette façon de faire... à chaque fois j'ai la même erreur de Undeclared Variable : tbl_offre

Une autre idée ?

Mammouth du PHP | 2937 Messages

07 août 2009, 15:58

Essaie d'entourer la requête SQL de guillemets simples :
$result = mysql_query ('SELECT * FROM tbl_offre WHERE off_cat_num=1') || die (mysql_error ());

Eléphanteau du PHP | 10 Messages

07 août 2009, 16:01

toujours le même problème...

Mammouth du PHP | 2937 Messages

07 août 2009, 16:03

As-tu, auparavant, établi une connexion avec la base de données, au moyen de mysql_connect () et de mysql_select_db () ? ;)

Eléphanteau du PHP | 10 Messages

10 août 2009, 09:38

Oui bien entendu, j'ai crée un fichier "connect.php" que j'appele à l'aide d'un include juste avant ma requête problématique.

Ce dernier ne retourne pas d'erreur... de plus je m'en sers dans une autre page (celle de l'ajout d'infos dans la base) et ça
fonctionne à merveille.

ViPHP
ViPHP | 4039 Messages

10 août 2009, 09:49

Est-ce que c'est normal que tu parles d'un select... into... dans ton premier message ? Ca existe, pas de prob, c'est utile pour copier une table dans une autre, pour faire des sauvegardes par exemple, mais c'est pas très courant.

As-tu essayé en mettant le nom du tableau entre apostrophes, histoire de bien préciser qu'il s'agit d'une chaine et non pas d'une quelconque variable ?

Code : Tout sélectionner

SELECT * FROM `tbl_offre` WHERE off_cat_num=1
Et l'arobase n'enlève bien sur pas l'erreur, il la masque. C'est une pratique très fortement déconseillée.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 10 Messages

10 août 2009, 09:54

Ouaaaaa !!!!

Problème résolu ! C'était effectivement mon INTO qui faisait planter ma requête, en mettant FROM le problème s'est arrangé !

Merci pour à vous pour vos conseils, peut-être à bientôt pour d'autres petits bugs dans ce genre là !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 août 2009, 10:28

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton Image en haut à droite de la réponse qui te semble la plus pertinente.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer