Stocker le nom d'une table dans une variable

salimdrame Messages postés 71 Statut Membre -  
salimdrame Messages postés 71 Statut Membre -
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 5776 Date d'inscription   Statut Contributeur Dernière intervention   1 462
 
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 71 Statut Membre 1
 
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 5776 Date d'inscription   Statut Contributeur Dernière intervention   1 462 > salimdrame Messages postés 71 Statut Membre
 
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 71 Statut Membre 1 > Ricky38 Messages postés 5776 Date d'inscription   Statut Contributeur Dernière intervention  
 
toujours la même erreur Ricky38
0
croy Messages postés 457 Statut Membre 114
 
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 71 Statut Membre 1
 
Toujours la même erreur croy
0
croy Messages postés 457 Statut Membre 114
 
Pourrais-tu redonner :
1.ton code
2.l'erreur exacte (copié/collé)
0
salimdrame Messages postés 71 Statut Membre 1
 
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 71 Statut Membre 1
 
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 457 Statut Membre 114
 
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 71 Statut Membre 1
 
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 457 Statut Membre 114
 
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 71 Statut Membre 1
 
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 457 Statut Membre 114
 
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 71 Statut Membre 1
 
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