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

Installation MySQL Discussion :

Problème insertion Mysql_query


Sujet :

Installation MySQL

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Par défaut Problème insertion Mysql_query
    bonjour,

    J'ai crée une page d'installation et lors que je fais des insertions je n'ai que la première ligne d'insertion qui est écrite dans la tbale

    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
     
    <?php 	
     
     // Charge les paramètres de connexion à la base de données.
       require_once("config.php");   					  
       // Préparation de la connexion persitante 
       $idConnexion = mysql_pconnect($base_serveur, $base_user, $base_password);   		 
       // Préparation de la connexion persitante 
       if (!$idConnexion) {
            die("<b>Impossible d'établir la connection vace le serveur  $base_serveur </b>");
        }	
     
        if (!mysql_select_db($base_name)) {
            die("<b>Impossible de se connecter à la base de données  $base_name </b>");
        }     
     
    //****************
    // Table LIENS
    //****************
      
        $table = "lien";
        // Supprime la précédente table
        $requete = "DROP TABLE $table";
        mysql_query($requete, $idConnexion);
     
         // Préparation de la requete de création 
          $requete = "CREATE TABLE $table (lien_num INTEGER(3) PRIMARY KEY ,                                          
                                            lien_nom VARCHAR(15),
    										lien_nbclick INTEGER(6),
    										lien_texte text,
    										lien_profil VARCHAR(2),
    										lien_type VARCHAR(10)
    										)";
         // lancement de la requete de création 								
            if (!mysql_query($requete, $idConnexion))  
    		{	
    		echo "La création de la table  $table  a échouée !</br>";
    		} else {
            echo "La table  $table vient d'être créée avec succès !</br>";           
        }	
     
    	 // alimentation du lien menu accueil avec lien vers articles
         $requete = "INSERT into $table (lien_num,lien_nom,lien_texte,lien_type)       
    	                   VALUES('1' , 'Articles' , 'Page Articles' , 'Menu')"; 
         // lancement de la requete d'insertion								
          mysql_query($requete, $idConnexion);	 
     
    	 // alimentation du lien menu accueil avec lien vers contacts
         $requete = "INSERT into $table (lien_num,lien_nom,lien_texte,lien_type)       
    	                   VALUES('1' , 'Contact' , 'Page contact' , 'Menu')"; 
         // lancement de la requete d'insertion								
          mysql_query($requete, $idConnexion); 
      
    	 // alimentation du texte défilant
         $requete = "INSERT into $table (lien_num,lien_nom,lien_texte,lien_type)       
    	                   VALUES('1' , 'Défilant' , 'Texte défilant' , 'Defile')"; 
         // lancement de la requete d'insertion								
          mysql_query($requete, $idConnexion);	 	  
                                   
    ?>
    Dans le cas évoqué , seule la ligne article s'écrit dans la base.
    Par contre si je flague , cette ligne alors c'est la ligne contact qui s'écrit mais toujours une seule ligne.

    Il n'est pas possible de faire plusieurs insert à la suite ???

    Philippe

  2. #2
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    biensur que tu peux faire plusieurs insert de suite
    mais réfléchi un peu

    a chaque fois que tu réécris $requete = ... alors tu changes la valeur de cette variable.

    après chaque $requete
    écris : mysql_query($requete, $idConnexion);

    de cette façon tout se fera d'affilé

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Par défaut
    ou alors tu fait appel à la connection au début et tu fait une suite de mysql_query(

  4. #4
    Membre éprouvé Avatar de ciesco
    Inscrit en
    Février 2004
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 110
    Par défaut
    dj-julio=> MAis c'est pas ce qu'il fai deja?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Par défaut
    Je ne suis aps un pro de MySql .. mais ne faudrait-il pas faire un commit apres chaque INSERT ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Par défaut
    Voilà ce que j'ai fait dans le mien et qui fonctionne (peut-être pas le meilleur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    mysql_query("CREATE DATABASE `pcb2b` DEFAULT CHARACTER SET latin1 COLLATE latin1_general_cs");
    $bdd="pcb2b";
    mysql_select_db($bdd) or die ("<p>Cr&eacute;ation de la base de donn&eacute;es ...... <span class=Failed>Echec</span></p>");
    echo("<p>Cr&eacute;ation de la base de donn&eacute;es ...... <span class=Success>Succ&egrave;s</span></p>");
     
    mysql_query("CREATE TABLE `articles` (
    `article_id` INT( 8 ) NOT NULL AUTO_INCREMENT ,
    `article_code` INT( 8 ) NOT NULL ,
    `article_designation` VARCHAR( 150 ) NOT NULL ,
    `article_uniteprix` VARCHAR( 8 ) NOT NULL,
    `article_groupe` VARCHAR( 25 ) NOT NULL ,
    `article_active` INT ( 1 ) DEFAULT 1 NOT NULL,
    PRIMARY KEY ( `article_id` ))") or die ("<p>Cr&eacute;ation de la table Articles ...... <span class=Failed>Echec</span></p>");
    Bien sur il fuazt lancer la connection avant

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Par défaut Problème Mysql
    Bonjour,

    J'ai fait la connection au début et ensuite suppression de la table par défaut .
    Création de la table
    Insert articles , contact etc ...

    Dans l'exemple de psykbe , tu fais la créatio nde la table mais pas d'insertion de données .

    Le problème c'est qu'il me fait une insertion uniquement sur la premier enreg et là je pige pas ...

    Philippe

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Par défaut
    Ton problème c'est que tu défini ta primary key (Premier champ) déja, la primary key est auto incrémentée donc tu ne doit pas l'entrer manuellement (en tout cas il faut qu'elle soit configurée comme telle) et ensuite à chaque insertion du lui dit d'aller réecrire sur la ligne '1' étant donné qu'une clé est unique donc soit tu laisse le faire en auto increment soit tu défini pour le 1ier l'id a 1 le 2ième à 2 ...

  9. #9
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    Et de cette manière :

    <?php
    //&#160;alimentation&#160;du&#160;lien&#160;menu&#160;accueil&#160;avec&#160;lien&#160;vers&#160;articles
    &#160;&#160;&#160;&#160;&#160;
    $requete&#160;=&#160;"INSERT&#160;into&#160;$table&#160;(lien_num,lien_nom,lien_texte,lien_type)&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;VALUES
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;('1'&#160;,&#160;'Articles'&#160;,&#160;'Page&#160;Articles'&#160;,&#160;'Menu'),
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;('1'&#160;,&#160;'Contact'&#160;,&#160;'Page&#160;contact'&#160;,&#160;'Menu'),
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;('1'&#160;,&#160;'Défilant'&#160;,&#160;'Texte&#160;défilant'&#160;,&#160;'Defile')"
    ;
    &#160;&#160;&#160;&#160;&#160;
    //&#160;lancement&#160;de&#160;la&#160;requete&#160;d'insertion&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;
    mysql_query($requete,&#160;$idConnexion);&#160;
    ?>

    Phpsyntaxcolor powered by decabodi

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Par défaut
    suivant la doc officielle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Valeurs de retour
    Pour les requêtes du type SELECT, SHOW, DESCRIBE ou EXPLAIN, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur. 
     
    Pour les autres types de requêtes, UPDATE, DELETE, DROP, etc., mysql_query() retourne TRUE en cas de succès ou FALSE en cas d'erreur.
    pour tester, recupere le resultat de chaque requete insert et fait un echo de chaque pour voir ce qu'il retourne ... TRUE ou FALSE !
    Si c'est trou a chaque fois .. c'est le commit qui manque.. sinon .. probleme de clef primaire .. enfin a voir ...

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Par défaut


    Trou !!! .. TRUE ... pardon ..

  12. #12
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    C'est pas un forum de golfeur ici ?

  13. #13
    Membre éprouvé Avatar de ciesco
    Inscrit en
    Février 2004
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 110
    Par défaut
    Oui ce que dit psykbe est pafait, ne mets pas ce champs dans tes insrt et ca ne peut que marcher.

  14. #14
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    @dev_php_205 : le COMMIT n'est valable que dans les situations de transactions, ce qui n'est pas le cas ici.

    +1 pour la proposition de psykbe : code toujours avec mysql_query($sql) or die(mysql_error()); lorsque tu ne sais pas ce qui cloche.
    En l'occurence, tu spécifies systématiquement la même clé primaire, qui existe depuis le premier INSERT.
    Si tu affiches mysql_error(), je parie qu'il te dira que tu as un duplicate.
    La solution est soit de mettre des ID différents, soit de mettre le champ en auto_increment (sans valeur par défaut) et de ne pas spécifier l'ID lors de l'insertion.

  15. #15
    Membre éclairé
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2002
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2002
    Messages : 231
    Par défaut Solution Mysql_query
    Bonjour,

    C'est le déchainement sur mon post , merci de votre intéret .

    La solution est effectivement au niveau de la primary key , lors de mes insertions je mettais toujours 1 comme valeur dans la variable lien_num ...

    Ah le copier coller ....

    Merci pour vos réponses

    Philippe

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

Discussions similaires

  1. [debutant][Applet] problèmes insertion applet java
    Par mlequim dans le forum Applets
    Réponses: 5
    Dernier message: 11/07/2005, 09h50
  2. [ZEOSLIB] Problème Insertion dans une table
    Par moscovisci dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/06/2005, 12h05
  3. [javascript] problème insertion image
    Par Pwill dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/05/2005, 16h12
  4. Réponses: 5
    Dernier message: 12/04/2005, 09h45
  5. problème insertion
    Par sonialem2000 dans le forum Bases de données
    Réponses: 5
    Dernier message: 14/07/2004, 01h45

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