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

Requêtes MySQL Discussion :

probleme avec CREATE TABLE


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 17
    Points
    17
    Par défaut probleme avec CREATE TABLE
    Bonjour, comme le titre l'indique je veux créer une table.

    J'utilise du php et ma requête de création de table est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("CREATE TABLE $sous_menu IF NOT EXISTS('id' INT(3) NOT NULL AUTO_INCREMENT, 'titre' VARCHAR(30) NOT NULL, 'image' VARCHAR(30), 'texte' TEXT, 'date' DATE NOT NULL, PRIMARY KEY ('id')) ENGINE=InnoDB");
    Je ne comprend pas pourquoi me table ne se crée pas.
    Merci de m'expliqué.

    PS: j'ai récupéré la requête de phpmyadmin, normalement il n'y à pas d'erreur.

  2. #2
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Il te met un message d'erreur?

    Si il ne te met rien, rajoute ceci après la ligne de code que tu nous a proposé:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo mysql_error();

    Et dis nous ce que ça te met
    Comparez la qualité et le prix du matériel de bricolage ou de maison avant d'acheter : MatosMaison
    Le bouton ne masse pas les pieds, mais ça aide la communauté.

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    La variable $sous_menu est bien définie ?
    As-tu fait un echo de ta requête avant son exécution, pour voir quelle tête elle a ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Effectivement j'ai une erreur SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 'IF NOT EXISTS('id' INT(3) NOT NULL AUTO_INCREMENT, 'titre' VARCHAR(30) NOT NULL,' at line 1
    La variable $sous_menu est bien renseigné.
    merci

  5. #5
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    Bonjour,

    les noms de colonnes ne sont pas encadrés avec les "bons" guillemets. Remplace ' par `

    De plus, il me semble qu'il faut mettre le 'if not exists' avant le nom de la table

    D'ailleurs il est conseillé d'éviter les mots clés comme date pour nommer les colonnes

    A+

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    J'ai essayé de changer les guillemets, de mettre le 'if not exists' devant mais sa ne change rien. J'ai d'autres requêtes qui marche avec les guillements normaux, il est vrai que le 'if not exists' viens devant le nom de la table.

    J'ai toujours le même message d'erreur. Je ne comprend pas pourquoi.

  7. #7
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Pour mysql, tu n'as pas besoin de ' ou de `, vire les, ça fait moins propre mais ça élimine des causes d'erreurs. Ensuite effectivement, il vaut mieux éviter les mots clés comme date comme nom de colonne.
    Vire le "if not exists" pour tester.

    Et affiche ta requête SQL pour voir si elle est correcte dans sa forme. Hésite pas à la poster ici aussi.
    Comparez la qualité et le prix du matériel de bricolage ou de maison avant d'acheter : MatosMaison
    Le bouton ne masse pas les pieds, mais ça aide la communauté.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Ok donc j'ai fais un echo mais sa m'affiche: 1
    Je sais pas du tout pourquoi.
    J'ai viré toute les quillemets et changé le nom de la colonne date.

    PS: je n'ai plus d'erreur SQL.

  9. #9
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Mets ta chaine de requête SQL dans une variable. Passe cette variable à mysql_query() et avant, affiche la.

    Et mets nous ici ce que ça t'affiche
    Comparez la qualité et le prix du matériel de bricolage ou de maison avant d'acheter : MatosMaison
    Le bouton ne masse pas les pieds, mais ça aide la communauté.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Bon j'ai réussit à créer ma table après avoir rentré ma requête dans une variable mais je créé une deuxième table $sous_menu, pourquoi?

    Voici ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE IF NOT EXISTS $sous_menu (id INT(3) NOT NULL AUTO_INCREMENT, titre VARCHAR(30) NOT NULL, image VARCHAR(30), texte TEXT, date DATE NOT NULL, PRIMARY KEY (id)) ENGINE=InnoDB
    merci

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Oki, problème de concaténation de ma requête.

    Maintenant tout marche.
    Merci à tous pour votre aide, et surtout à gwinyam.
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PEAR][DB] [Db_DataObject_FormBuilder] Problème avec create
    Par Elboras dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 18/07/2010, 18h11
  2. probleme avec create shema
    Par sorari dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 13/07/2007, 11h09
  3. Pb avec CREATE TABLE "dynamique"
    Par forzaxelah dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/07/2006, 13h14
  4. PROBLEME AVEC UNE TABLE INTERBASE
    Par barro dans le forum InterBase
    Réponses: 1
    Dernier message: 22/09/2004, 08h16
  5. Probleme avec une table vide
    Par king dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/03/2004, 14h24

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