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

PHP & Base de données Discussion :

Création + Insertion de données dans une table [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Création + Insertion de données dans une table
    Bonjour à toutes et tous,

    dimanche 20h, je flanche... Après avoir passé le week-end à essayer de trouver la syntaxe qui fonctionne sans résultat, je me retourne vers vous !

    Voilà le process :
    En session je passe une valeur Date Horaire => OK
    Je crée une table avec pour nom cette valeur => OK
    J'upload un fichier Excel via un formulaire pour insérer les valeurs contenues => OK si j'insère le nom d'une table qui existe déjà, PAS OK si j'essaie d'utiliser la table créée...

    J'ai essayé toutes les configurations possibles concernant les quotes et double quotes mais sans résultat, voici le code et le message d'erreur ci-dessous.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php
     
      $code = $_SESSION['code'];
      echo $code;
     
     switch($_REQUEST['action'])
     {
      /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
       case "ajouter": 
     
     /* On ouvre le fichier à importer en lecture seulement */
     
    if (isset($_FILES['fichier']))
       {
      $fp = fopen($_FILES['fichier']['tmp_name'], "r");
     
      /* on crée une nouvelle table  */
       $sql_query="CREATE TABLE `" . $code . "` (  `id` int(11) NOT NULL auto_increment,  `email` varchar(100) NOT NULL default '', PRIMARY KEY  (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 ";
       $result_query=mysql_query($sql_query);    
     
      }
     
     else
         { /* le fichier n'existe pas */
           echo "<br />Fichier introuvable !<br /><br />Importation stopp&eacute;e.<br /><br /><br /><br /><br /><br /><br />";
           exit();
         }
     
        while (!feof($fp)) /* Et Hop on importe */
        { /* Tant qu'on n'atteint pas la fin du fichier */ 
           $get = fgets($fp,4096); /* On lit une ligne */  
           $slashed=addslashes($get);
           $str=trim($slashed);
     
           /* On récupère les champs séparés par; dans liste*/
           $ligne = explode(";",$str);  
     
           /* On assigne les variables */ 
           $email = $ligne[0];
     
           /* Ajouter un nouvel enregistrement dans la table */ 
    		$query = "INSERT INTO " . $code . " VALUES ('', " . $email . ")";
    		echo $query;
            mysql_query($query);
    		if(mysql_error())
            { /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
               print "<br />Erreur dans la base de donn&eacute;es : ".mysql_error();
               print "<br /><br />Importation stopp&eacute;e.<br /><br /><br /><br /><br /><br /><br />";
               exit();
            } 
           else /* Tout va bien */
             print "$id --> $email <br />";
         }
     
         echo "<br /><br /><b>Importation termin&eacute;e, avec succ&egrave;s. Vous pouvez envoyer votre Ecard.</b><br /><br />"; 
     
         /* Fermeture */ 
         fclose($fp); 
         MYSQL_CLOSE(); 
     
       break;
     
     
     
       /* FORMULAIRE DE CHOIX D'IMPORTATION */  
     
       default: 
       ?>

    20131124195941
    INSERT INTO 20131124195941 VALUES ('', gbazin.test@gmail.com)

    Erreur dans la base de données : 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 '20131124195941 VALUES ('', gbazin.test@gmail.com)' at line 1

    Importation stoppée.


    Un grand merci d'avance pour votre aide et votre temps.

    Gregg

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Ok donc là je ne sais pas où me mettre... Faut croire que c'est au moment où j'appelle à l'aide qu'on m'offre une étincelle d'inspiration...

    J'ai refait pas à pas tout le code, et en fait je me suis aperçu que ça bloquait au niveau de l'insertion. Et en fait, si la table s'appelle 20131123203054 ca ne fonctionne pas. Or si j'ajoute une lettre en premier, par exemple g20131123203054 là ca fonctionne.

    Donc en php/sql on ne peut pas insérer d'éléments dans une table nommée qu'avec des chiffres ? Bizarre...

    Donc j'aurai préféré trouver le bouton EFFACER pour cacher à jamais ce stop, mais sait-on jamais, ca pourra aider certain(e)s.

    @++

    Gregg

  3. #3
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2013
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 142
    Points : 295
    Points
    295
    Par défaut
    Hello,

    Normalement tu n'es pas obligé de stipuler une valeur pour une colonne auto incrémentée.

    La requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO 20131124195941 VALUES (gbazin.test@gmail.com)
    devrait fonctionner

    La base de données se chargera de gérer la valeur de l'ID

  4. #4
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2013
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 142
    Points : 295
    Points
    295
    Par défaut
    ... au temps pour moi

    Les règles sont ici

    Ne peut pas contenir QUE des chiffres mais rien n'empêche de faire commencer le nom par un chiffre

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Merci

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

Discussions similaires

  1. [Oracle] problème d'insertion de données dans une table sous oracle
    Par Zombiman dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/05/2009, 14h58
  2. [MySQL] Insertion de donnée dans une table
    Par cheik_koita dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/04/2009, 00h16
  3. [MySQL] PHP-MySQL: Insertion de donnée dans une table vide
    Par jrosenzw dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/03/2009, 02h11
  4. insertion de donnée dans une table (2 bd)
    Par robert_trudel dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 30/01/2007, 17h41
  5. Réponses: 5
    Dernier message: 26/01/2007, 08h11

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