variable dans une requete sql

Nouveau WRInaute
bonsoir,
dans mon script php je veux créer une table qui porte un nom variable stocker dans une variable $nom.
justilise donc la fonction mysql_query() et la requete CREATE TABLE $nom () mais quand la requete est executé la table porte le nom $nom et non celui de son contenant.
je ne sais pas si j'ai été très claire.
merci d'avance
coordialement
 
H
Haq
Guest
C'est un problème de syntaxe... trouve l'erreur d'écriture ou écris la ligne ici...
 
WRInaute passionné
Le PHP ne remplace les variables dans les chaînes de caractères que si elles sont délimitées par des guillemets

Exemple :
Code:
$nom = "Apx";
echo( "Bonjour $nom");
va afficher
Bonjour Apx

Mais
Code:
$nom = "Apx";
echo( 'Bonjour $nom');
affiche
Bonjour $nom

:wink:

Moi j'ai une autre question : si je veux classer les résultats d'une requête non pas par COLONNE1, ni par COLONNE2, mais par (COLONNE1*COLONNE2) ? comment je fais ma requête SQL ? :?
 
H
Haq
Guest
Dj_Apx a dit:
Moi j'ai une autre question : si je veux classer les résultats d'une requête non pas par COLONNE1, ni par COLONNE2, mais par (COLONNE1*COLONNE2) ? comment je fais ma requête SQL ? :?

Code:
SELECT colonne1*colonne2 AS resultat FROM table ORDER BY resultat

Sauf erreur de ma part...
 
WRInaute passionné
aK a dit:
Dj_Apx a dit:
Moi j'ai une autre question : si je veux classer les résultats d'une requête non pas par COLONNE1, ni par COLONNE2, mais par (COLONNE1*COLONNE2) ? comment je fais ma requête SQL ? :?

Code:
SELECT colonne1*colonne2 AS resultat FROM table ORDER BY resultat

Sauf erreur de ma part...
muchas :)
 
Nouveau WRInaute
merci mais l'utilisation des " dans un réquete sql empeche la requete d'aboutir et meme avec l'utilisation d'anti-slash ( \" ).
J'avai essayer avant de venir vous poser ma question et c'est vrai que jorai du le préciser.
j'ai aussi essayer entre {}, la la requete fonction mais prend tjr comme nom $nom
 
H
Haq
Guest
neroleptic a dit:
merci mais l'utilisation des " dans un réquete sql empeche la requete d'aboutir et meme avec l'utilisation d'anti-slash ( " ).
J'avai essayer avant de venir vous poser ma question et c'est vrai que jorai du le préciser.
j'ai aussi essayer entre {}, la la requete fonction mais prend tjr comme nom $nom

C'est ton utilisation des quotes et des double quotes qui ne va pas... si tu mets correctement les doubles et les simples (ou doubles avec slashes) ça roulera.

PS: C'est la journée où tout le monde écrit n'importe comment, aujourd'hui ?
 
Nouveau WRInaute
$sql = 'CREATE TABLE $nom( num int( 11 ) DEFAULT \'0\' NOT NULL AUTO_INCREMENT ,'
. ' jour int( 2 ) NOT NULL ,'
. ' mois int( 2 ) NOT NULL ,'
. ' an int( 4 ) NOT NULL ,'
. ' heure varchar( 5 ) NOT NULL ,'
. ' chaine varchar( 10 ) NOT NULL ,'
. ' nom varchar( 100 ) NOT NULL ,'
. ' sujet varchar( 100 ) NOT NULL ,'
. ' showview int( 7 ) NOT NULL ,'
. ' note int( 2 ) NULL ,'
. ' PRIMARY KEY ( num ) )';

voila ma table.
g essayer ".$nom." et ca ne me crée meme plus de table.
merci davance
 
WRInaute impliqué
je te comprends pas, c'est quand meme plus rapide de regarder un peu la situation et de comprendre que dans ton cas avec

$sql = 'CREATE TABLE ' . $nom . '( num int( 11 ) DEFAULT \'0\' NOT NULL AUTO_INCREMENT ,'
. ' jour int( 2 ) NOT NULL ,'
. ' mois int( 2 ) NOT NULL ,'
. ' an int( 4 ) NOT NULL ,'
. ' heure varchar( 5 ) NOT NULL ,'
. ' chaine varchar( 10 ) NOT NULL ,'
. ' nom varchar( 100 ) NOT NULL ,'
. ' sujet varchar( 100 ) NOT NULL ,'
. ' showview int( 7 ) NOT NULL ,'
. ' note int( 2 ) NULL ,'
. ' PRIMARY KEY ( num ) )';

ca va marcher que de reposter sur le forum !

en fait ya 1000 facons de faire pour que ca marche si tu comprends bien que :

une chaine ouverte avec ' se referme avec '
une chaine ouverte avec " se referme avec "
les variables sont interpretees en php dans les chaines " et pas dans les chaines '
 
WRInaute occasionnel
bon a parament ici c'etait pas evident a voir

$sql = 'CREATE TABLE ' . $nom . '(

petite erreur qui peut entrainer des heures de galeres

enfin ce que je voulais dire c 'etait pas une histoire d'ouverture " et fermeture " mais une histoire de . autour de la variable

si il cree une table je suppose quil sais comment fonctionne " " et ' '
 
WRInaute passionné
Y'a vraiment des boulets. Zéro efforts, et ils voudraient qu'on leur donne la solution clé en main :evil:
Puisqu'on est bien gentils...

Remarque : il faut protéger tes champs avec ``, sinon tu aura une erreur si ta variable $nom contient un espace par exemple...

Code:
$sql = 'CREATE TABLE `'.$nom.'`( num int( 11 ) DEFAULT \'0\' NOT NULL AUTO_INCREMENT ,'
. ' jour int( 2 ) NOT NULL ,'
. ' mois in.....
 
WRInaute passionné
Dj_Apx a dit:
Le PHP ne remplace les variables dans les chaînes de caractères que si elles sont délimitées par des guillemets

Exemple :
Code:
$nom = "Apx";
echo( "Bonjour $nom");
va afficher
Bonjour Apx

Mais
Code:
$nom = "Apx";
echo( 'Bonjour $nom');
affiche
Bonjour $nom
neroleptic a dit:
$sql = 'CREATE TABLE $nom( num int( 11 ) DEFAULT \'0\' NOT NULL AUTO_INCREMENT ,'
. ' jour int( 2 ) NOT NULL ,'
....
voila ma table.
g essayer ".$nom." et ca ne me crée meme plus de table.
merci davance
sans commentaire
ah zut ! c'en est un :oops:
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut