Stocker le nom d'une table dans une variable

Fermé
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 - 10 juil. 2008 à 21:51
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 - 11 juil. 2008 à 15:21
Bonjour,
j'éprouve actuellement des difficultés parce que j'essaie de stocker de stocker le nom d'une table dans une variable en vue d'une réutilisation ultérieure.
Mon problème est qu'une fois appelée, il m'affiche cette erreur :

"parse error, unexpected T_VARIABLE in ...on line ..."

Si je comprends bien cela veut dire que la variable est soit vide ou n'existe pas et pourtant la variable est appelée par la méthode GET et la valeur s'affiche correctement sur la barre d'adresse.

Voici une portion de mon code

*******************************PHP********************************

$sigle_etab=(isset($_GET['sigle_etab']));

//Modification de la table
mysql_query("
ALTER TABLE "$sigle_etab" ADD
`diplome` VARCHAR(150) NOT NULL AFTER;")
OR DIE('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

********************************************************************

je ne sais pas ou se trouve l'erreur à moins que ce ne soit une erreur de manipulation.

Aidez moi please, merci d'avance

7 réponses

Ricky38 Messages postés 4347 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
10 juil. 2008 à 22:03
salut,

essaie plutot ceci :

mysql_query("
ALTER TABLE '$sigle_etab' ADD
`diplome` VARCHAR(150) NOT NULL AFTER;")
OR DIE('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 


donc des ' au lieu des "
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
10 juil. 2008 à 22:08
maintenant il m'affiche cette erreur

Erreur SQL !

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 ''' ADD `diplome` VARCHAR(150) NOT NULL AFTER' at line 1
0
Ricky38 Messages postés 4347 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458 > salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011
10 juil. 2008 à 22:23
essaie ceci :

mysql_query("
ALTER TABLE '$sigle_etab' ADD
'diplome'  VARCHAR(150) NOT NULL;")
OR DIE('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1 > Ricky38 Messages postés 4347 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013
10 juil. 2008 à 22:26
toujours la même erreur Ricky38
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
10 juil. 2008 à 22:37
Ta première ligne place dans ta variable le résultat de isset qui est un booléen.

Utilise :
$sigle_etab = $_GET['sigle_etab'];
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
10 juil. 2008 à 22:40
Toujours la même erreur croy
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
10 juil. 2008 à 22:43
Pourrais-tu redonner :
1.ton code
2.l'erreur exacte (copié/collé)
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
10 juil. 2008 à 22:47
observez bien l'erreur

************************************

Erreur SQL !

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 ''' ADD 'diplome' VARCHAR(150) NOT NULL' at line 1

*************************************

en fait il semblerait qu'il ne prend même pas en compte la variable à en voir les guillemets (near ''' ADD 'diplome) c'est comme ci la variable était absente alors que normalement elle aurait du afficher soit la valeur de la variable ou la variable elle même.

Voici mon code

************************PHP*****************************

$sigle_etab = $_GET['sigle_etab'];

//Modification de la table
mysql_query("
ALTER TABLE '$sigle_etab' ADD
'diplome' VARCHAR(150) NOT NULL;")
OR DIE('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

****************************************************************
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
10 juil. 2008 à 22:50
juste pour préciser ma réflexion je pense qu'en lieu et place de (near ''' ADD 'diplome) il aurait du y avoir (near ''valeur de la variable' ADD 'diplome) ou (near ''$sigle_etab' ADD 'diplome)

je pense que c'est plus clair maintenant
0

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

Posez votre question
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
10 juil. 2008 à 22:51
Es-tu certain que sigle_etab est bien dans transmise par $_GET ?

Pour t'en assurer, ajoute :
echo '<br>...' . $_GET['signe_etab'] . '...';
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
10 juil. 2008 à 22:55
je viens d'essayer ta solution Croy et il y a que les pointillés qui apparaissent et non la valeur de la variable. Je m'en doutais et pourtant la valeur de la variable s'affiche dans l'url alor ou est le probléme?
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
10 juil. 2008 à 22:59
Vérifie bien l'orthographe, au besoin resaisi signe_etab...tatonne par essais successifs pour trouver pourquoi le param signe_etab n'est pas transmis correctement.
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
11 juil. 2008 à 13:05
Bonjour Croy,
Je me suis finalement résigné à utiliser $_POST au de $_GET et la valeur de la variable (le nom de la table) apparait enfin entre les guillemets mais j'ai toujours l'erreur sql

*********************************

Erreur SQL !

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 ''nom de la table' ADD 'diplome' VARCHAR(150) NOT NULL' at line 1

*********************************

Voici une portion du nouveau code

*******************PHP***********************

$sigle_etab = $_POST['sigle_etab'];

//Création de la table
$sql = mysql_query("ALTER TABLE '$sigle_etab' ADD 'diplome' VARCHAR(150) NOT NULL;")
OR DIE('Erreur SQL !<br />'. $sql .'<br />'.mysql_error());

*********************************************
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
11 juil. 2008 à 15:18
Si j'enj uge par le diagnostic, ta table s'appelle nom de la table ce qui est étrange (je ne suis pas certain que les espaces soient autorisés).

Par ailleurs, dans ta commande sql, on voit des guillemets normaux autour du nom de la table et du nom de la variable à ajouter : il me semble que autour des noms, lmorsque c'est nécessaire on met des guillemets inversés.

Pour ma part, je te recommande de nommer tes tables et variables sans que ces guillemets inversés soient nécessaires (ce qui est le cas pour diplome).

Par ailleurs, simpliifie la formulation php de ta comande sql en :

//Création de la table
$sql = mysql_query( "ALTER TABLE " . $sigle_etab
   " ADD diplome VARCHAR(150) NOT NULL")
   OR DIE( mysql_error() );
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
11 juil. 2008 à 15:21
non en fait 'nom de table' n'existe pas se serait plutot 'nom_de_table'.

J'ai finalement trouver une solution que je suis entrain d'exploiter et si jamais ça marche je la poste à cet endroit merci à tous pour votre aide.
0