IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

nom de la table en variable


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut nom de la table en variable
    Bonsoir,

    Je voulais savoir si il été possible de faire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <php
    $table = 'maTable'; 
    mysql_query('INSERT INTO '. $table .' VALUES....
    Car je voudrai référencer qu'une seul fois le nom de la table pour ne pas la réécrire
    20 fois dans le code.


    Merci

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    oui, c'est meme plus que conseillé

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    c'est encore plus joli avec une constante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <php
    define ('TABLE', 'maTable'); 
    mysql_query('INSERT INTO '. TABLE .' VALUES....
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut
    Ok merci,

    Comment faire pour l'indentation ? si sa s'appelle comme sa.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query('SELECT * FROM '. $table .' where ID =  '. $nb)
    Une erreur

    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 'where ID = "3"' at line 1
    J'arrive pas a faire en sorte d'enlever les " sur ID

    Merci

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu devrais faire un controle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql = 'SELECT * FROM '. $table .' where ID =  '. $nb;
    echo $sql . '<br/>';
    var_dump($nb);
    mysql_query($sql)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut
    Merci de ta réponse :

    La je ne comprend pas pourquoi il ne m'indique pas ma table.

    SELECT * FROM where ID = 5
    Merci sabotage pour le conseil,

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    ta variable n'est pas correctement définie.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut
    C'est ce que je pensais mais cela ne semble pas être cela.
    Et j'ai essayé plusieurs choses.
    Je ne peux pas faire de test du genre echo $table;
    car je peux pas exécuter le code.

    Je le ferai et vous le direz ce soir.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut
    Bon la je ne comprend vraiment rien,
    Si vous trouvez.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $table = matable;
    echo 'Table : '.$table.' <br />';
    echo sprintf("SELECT * FROM %s WHERE ID='%d'",$table,$init);
    $query = sprintf("SELECT * FROM %s WHERE ID='%d'",$table,$init)or die(mysql_error());
    erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Table : matable ;
    SELECT * FROM WHERE ID='1'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 'WHERE ID='1'' at line 1
    Logiquement sa devrait fonctionner.

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as bien mis de guillemets ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut
    J'ai testé avec et sans.
    Et pour les guillemet c'est une convention cela fonctionne aussi sans.

    D'autre idée car je trouve ce problème assez ennuyeux.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 62
    Par défaut
    Citation Envoyé par xoum89 Voir le message
    Et pour les guillemet c'est une convention cela fonctionne aussi sans.
    mais c'est une très mauvaise façon de faire.
    D'ailleurs si tu demande à php de t'afficher tous les messages d'erreurs ( error_reporting(E_ALL); ) tu verras que sans les guillemets il t'affiche une alerte !

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comme te l'explique Dauphin, les guillemets ne sont pas une convention.
    PHP qui est très gentil, rattrape l'erreur derrière toi.
    Le fait que ca fonctionne n'est pas un argument : c'est comme les autre choses, ca fait la différence entre du bricolage et travail sérieux.

    Au contraire dans ta requete, les apostrophes autour de l'id sont inutiles puisque c'est un nombre.

    Il y a peut etre quelque chose que tu ne nous restitue pas bien comme le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $table = 'matable';
    $init = 2;
    echo 'Table : '.$table.' <br />';
    echo sprintf("SELECT * FROM %s WHERE ID=%d",$table,$init);
    donne bien
    SELECT * FROM matable WHERE ID=2
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut
    Je suis d'accord avec toi et je l'utilise.
    J'essaye de coder le plus proprement possible, et le plus sécurisé.
    (Presque , je ne fais pas de la PDO, car free ne l'accepte pas.)

    Mais la je ne voit vraiment pas mon problème.

    Surtout que plus loin dans mon code cela fonctionne avec une autre table.

    Edit : J'ai trouvé une autre erreur grâce à toi.
    Notice: Undefined variable: table
    Mais pourtant elle est bien définie.

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que le bout de code tout seul dans un fichier fonctionne bien ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut
    non il ne fonctionne pas j'avais aussi testé.

    Edit : en enlevant tous et en mettant ta fonction une autre erreur est apparue
    2039

  17. #17
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Quelle erreur ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut
    J'avais editer mon poste
    2039
    c'est tout

  19. #19
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est sur ton hebergement free que tu obtiens ça ?
    Personnellement je mets ce code tout seul dans un fichier, je le place sur free, j'obtiens le resultat attendu.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut
    Oui c'est bien sur mon hébergeur free.

    Et si je remplace la variable par directement le nom de la table l'erreur disparait.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [phpMyAdmin] Passer le nom d'une table en variable dans une requête avec phpMyAdmin
    Par EnRadeSurEclipse dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 29/09/2014, 11h49
  2. Creation d'une table avec variable dans le nom
    Par 3vilsnake dans le forum Langage SQL
    Réponses: 7
    Dernier message: 30/07/2007, 17h49
  3. [VBA]Pb Dcount - Nom d'une table dans une variable
    Par porcinet82 dans le forum VBA Access
    Réponses: 9
    Dernier message: 17/04/2007, 09h11
  4. Possibilité de passer le nom d’une table en variable ??
    Par nicolas310380 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 21/02/2006, 14h12
  5. LOT DTS - nom de la table variable
    Par speed034 dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 21/02/2006, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo