[Prob] apres importation de bd

Résolu
jamescool Messages postés 5 Date d'inscription dimanche 5 juin 2005 Statut Membre Dernière intervention 31 octobre 2005 - 30 oct. 2005 à 10:13
welchall Messages postés 1 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 9 juin 2008 - 9 juin 2008 à 17:25
bonjour,
voila jai changer d'hebergeur , passage de free a 1&1 , tout c bien passer a un truc pres
Quand je veux poster dans mon forum ou dans la shoutbox jai une erreur de ce type
mySQL query error: INSERT INTO ibf_shoutbox (name,uid,mgroup,shout,color,date,time) VALUES('JamesCool',226,4,123,'black','28th October 2005',1130490688)


mySQL error: Duplicate entry '0' for key 1
mySQL error code: 
Date: Friday 28th of October 2005 11



ca me le fais aussi qd je post dans les forums
mySQL query error: INSERT INTO ibf_posts & #40;author_id,use_sig,use_emo,ip_address,post_date,icon_id,post,author_name,topic_id,queued,post_htm
lstate,post_key,post_parent) VALUES(226,1,1,'80.170.171.190',1130536349,0,'1234567890°+µ','JamesCool',226,0,0,'7a5ab0aad9d207f11e97af0f29634238',0)


mySQL error: Duplicate entry '0' for key 1
mySQL error code: 
Date: Friday 28th of October 2005 11:52:29 PM




aide moi sil vous plait je bug sur cette erreur ,
c''est impossible de poster , de creer , de repondre etcc , jai toujour cette erreur du duplication

8 réponses

cs_bastoun Messages postés 164 Date d'inscription dimanche 1 octobre 2000 Statut Membre Dernière intervention 23 mars 2007 1
31 oct. 2005 à 00:24
L'erreur ici c'est parce qu'il essaie de recréer une ligne dans la
table alors que la valeur de la clé (primaire je pense, ou alors une autre clé unique) qu'il essaie de
créer existe déjà.



une 'tite question bete, enfin, pas tant que ça : tu t'y es pris
comment pour recréer et importer le contenu de tes tables ? (script
MySql exporté à partir de ton ancien hébergeur, fichier csv, autrement
?? décrit aussi complètement que possible ta démarche)





Vérifie dans mysql si tes tables ont bien leur structure complète (clés
primaires, étrangères, auto_incfément). Prend comme base de comparaison
tes tables chez ton ancien hébergeur.



Si la structure est incomplète :

- soit tu reprend tout à la main, et bon courage.. surtout que t'as pas l'air de t'y connaitre beaucoup avec mysql...

- soit tu réexporte le script de création de tes tables à partir de ton
hébergeur d'origine, en incluant la structure complète et la valeur
d'autoincrément, et à ce moment là tu détruit tes tables (oublie pas de
sauvegarder tes données) de destination et tu les recré à partir du
script généré. Après le réimport, ça devrait être nickel



Si ta structure est complète et que tu possède tes clef primaires avec
autoincrément, vérifie la prochaine valeur de l'autoincrément. Il se
peut qu'il soit à 0.

Dans ce cas, prend tes mimines et insère une ligne en n'oubliant pas de
spécifier une valeur pour le champ clef primaire, valeur supérieure à
la dernière valeur insérée pour la table. Ensuite tu détruit cette
ligne. ça devrait régler le problème. (juste pour la table en cours...
bref, faut le faire à chaque table qui en a besoin)

Sinon tu peux le faire en faisant une requete genre ALTER TABLE
nomtable AUTO_INCREMENT = x où x est la prochaine valeur à
prendre pour l'autoincrement
3
jamescool Messages postés 5 Date d'inscription dimanche 5 juin 2005 Statut Membre Dernière intervention 31 octobre 2005
30 oct. 2005 à 10:15
bonjour,
voila jai changer d'hebergeur , passage de free a 1&1 , tout c bien passer a un truc pres
Quand je veux poster dans mon forum ou dans la shoutbox jai une erreur de ce type

mySQL query error: INSERT INTO ibf_shoutbox (name,uid,mgroup,shout,color,date,time) VALUES('JamesCool',226,4,123,'black','28th October 2005',1130490688)


mySQL error: Duplicate entry '0' for key 1
mySQL error code:
Date: Friday 28th of October 2005 11



ca me le fais aussi qd je post dans les forums

mySQL query error: INSERT INTO ibf_posts & #40;author_id,use_sig,use_emo,ip_address,post_date,icon_id,post,author_name,topic_id,queued,post_htm
lstate,post_key,post_parent) VALUES(226,1,1,'80.170.171.190',1130536349,0,'1234567890°+µ','JamesCool',226,0,0,'7a5ab0aad9d207f11e97af0f29634238',0)


mySQL error: Duplicate entry '0' for key 1
mySQL error code:
Date: Friday 28th of October 2005 11:52:29 PM



aide moi sil vous plait je bug sur cette erreur ,
c''est impossible de poster , de creer , de repondre etcc , jai toujour cette erreur du duplication
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
30 oct. 2005 à 15:49
Tu n'as po une colonne ki doit s'auto incrémenter ?? et dans la creation de ta table tu azs puet etre oublié de le rajouter..

S.
0
jamescool Messages postés 5 Date d'inscription dimanche 5 juin 2005 Statut Membre Dernière intervention 31 octobre 2005
30 oct. 2005 à 23:32
je se pas c pour ca que je demande de l'aide ,

mais jai importé ma bd de free et jai donc rien touche
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jamescool Messages postés 5 Date d'inscription dimanche 5 juin 2005 Statut Membre Dernière intervention 31 octobre 2005
31 oct. 2005 à 09:39
Jai exporte ma bd en sql (free) ,avec aucune compression, avec compatibilité mysql 40 apres jai reimporté les tables a la main (table par table chez 1&1 ) ce que je fe toujours ,
par contre en mysql je my connais pas trop mais un peu ,
je vais essayer et je di bien essayer ce que tu ma decrit lol
mais si jy arrive pas je vois pas comment faire
Merci
0
jamescool Messages postés 5 Date d'inscription dimanche 5 juin 2005 Statut Membre Dernière intervention 31 octobre 2005
31 oct. 2005 à 12:42
Merci a tous
jai enfin trouvé l'erreur , sur toute mes tables a la colonne id , a defaut il y avait '0' au lieu de ' ' et a l'extra il y avait ' ' au lien de 'auto_increment'
maintenant ca marche merci a toi bastoum
0
spam1234 Messages postés 1 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 20 novembre 2005
20 nov. 2005 à 10:56
Bonjour,
Peux tu expliquer en pratique comment tu as fais pour ce transfert free => 1&1, je n'y arrives pas (remarque, je suis TRES nul, il faudrait des explication hyper détaillées)
Cordialement,
Frédéric
0
welchall Messages postés 1 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 9 juin 2008
9 juin 2008 à 17:25
Moi j'ai fais ce projet la pour inserer les donnée que moi déja recu de ma boite mail
et apres les transformer vers csv, alors moi je veux inserer les valeur du ces fichiers dans ma base de donnée et j'ai utilise ce code la mais il ya toujoues de problem aide moi

$connect = "{".$server_mail.":".$port."/pop3/notls}INBOX" or die("Erreur de connexion : ". imap_last_error());
//Connexion à la boite mail
$mail = imap_open($connect, $user_mail, $passwd_mail);
$nbmess = imap_num_msg($mail);

/*//Récupération des pièce jointes dans les messages
for($j=1;$j<=$nbmess;$j++)
    {
        $header = imap_headerinfo($mail,$j);
        $sujet = $header->subject;
        $struct = imap_fetchstructure($mail,$j);
       
        if ($struct->type == 1)
            {
                $nbrparts = !$struct->parts ? "1" : count($struct->parts);
            }
           
        $piece = array();
       
        for($h=1;$h<=$nbrparts;$h++)
        {
            $part = $struct->parts[1] ;
            $piece = imap_fetchbody($mail,$j,$h+1);
            if ($part->encoding == "3")
                {
                    $nbparam = count($part->parameters);
                    $i=0;
                    while ($i < $nbparam)
                        {
                            $i++;
                            $param = $part->parameters[$i];
                            $nom_fichier = $struct->parts[$h]->dparameters[0]->value;
                        }
                    $piece = imap_base64($piece);
                }
            //Enregistrement de la pièce jointe
            if($nom_fichier != null)
                {
                    $newfichier = fopen("P:/FINANCE/Fraudes/Alarmes_Orange/".microtime()."_".$nom_fichier,"w+");                           
                    fwrite($newfichier,$piece);
                    fclose($newfichier);
                }
        }
    }   
*/
$dir = opendir($rep);
//Bibliothèque XLS vers CSV
require_once 'Excel/reader.php';
//Lister le contenu du répertoire $rep
while ($f = readdir($dir)) {
   if(is_file($rep.$f)) {
      $extension=strrchr($rep.$f,'.');
      //Conversion des fichiers XLS en CSV
      if ($extension == ".xls")
        {
            //Création du fichier CSV à partir du XLS
            $xls2csv_fichier = fopen($rep.$f.".csv","w+");
            $reader = new Spreadsheet_Excel_Reader();
            $reader->setOutputEncoding('CP1251');           
            $reader->read($rep.$f);
            foreach($reader->sheets as $k=>$data)
                {
                    foreach($data['cells'] as $row)
                    {
                        foreach($row as $cell)
                        {
                            fwrite($xls2csv_fichier,$cell.";");
                        }
                        fwrite($xls2csv_fichier,"\n");
                    }
                }
            //Archivage du XLS d'origine
            rename($rep.$f, $rep."Archive_XLS/".$f);                   
        }
   }
}
closedir($dir);

//Identification du type d'alarme et insertion en base de données.
$dir = opendir($rep);
while ($f = readdir($dir)) {
   if(is_file($rep.$f))
   {
    $extension=strrchr($rep.$f,'.');
    if ($extension == ".csv")
    {
         // Connexion à  la base de donnée d'injection (Alarmes_Orange)
         
         $connect_inject = mysql_connect($serverbdd_inject,$userbdd_inject,$passbdd_inject) or die ("Erreur de connexion à la BDD inject :".$serverbdd_inject);
         $bdd_inject = mysql_select_db($base_inject) or die("pas possible de trouver la base");
         //Connexion à la BDD de selection (VIRGIN_PROD)
         
         $connect_select = mysql_connect($serverbdd_select,$userbdd_select,$pwdbdd_select) or die ("Erreur de connexion à la BDD select :".$serverbdd_select);
         $bdd_select = mysql_select_db($base_select) or die("pas possible de trouver la base");
         //Identification du type de fichier avec son nom
         $type_alarm = preg_replace  ("/([^_]*_)([^\.]*)(.*)/","$2",$f);
         echo "Expression régulière : ".$type_alarm."
";       
         //Action en fonction du type
         switch($type_alarm)
        {
            case "Surc_Virgin":
              
                  echo "Nom du fichier : ".$f."
";
                  //$inF = fopen($rep.$f, 'r');
                 $row = 0;
                 $inF = $rep.$f;
                 $handle = fopen($inF, "r") or die("Cannot open $inF");
                  //echo '<table border=\'1\'>';
                 while (($ligne = fgetcsv($handle, 4096, ";")) !== FALSE)
                 {     
                    $valeur[$row]=explode(";",$ligne);
                    //$val = explode(";",$ligne);
                    $premrier_ligne = 0;
                    $num = count($ligne);
                    echo " $num champs à la ligne $row:

\n\n";
                    echo $ligne[0];
                     for ($c=0; $c < $num; $c++) {
                                                  echo $ligne[$c] . "
\n";  } 
                   
                                                                              
                    list($Nom, $IMSI, $SIM13, $DatOuvDossier, $Dossier, $Durée, $hhmmss, $Mont_Euros, $PaysdestinationouTypeAppel, $DateAlarme, $Date1ereAlarme, $Nbsortie) = $ligne;                     
                    print_r ($IMSI);
               
                     
                     echo "";
                      print_r ($valeur[$row]);
                     echo "

"; 
                /*    $req_insert = "INSERT INTO `Table_Temp` VALUES ('$IMSI','$DateAlarme','$Date1ereAlarme','','','$Durée','','','$Mont_Euros','');";
                    echo $req_insert."
";
                    $res = mysql_query($req_insert,$connect_inject) or die($req_insert." ".mysql_error()."
");     

                /*    $select = "SELECT * FROM `Table_Temp`";
                    $test = mysql_query($select,$connect_inject) or die($select." ".mysql_error()."
");
                    $o_test = mysql_fetch_object($test);
                    echo "echo avant delete
";print_r($o_test);echo "

";  */

                  /*  $req_del = "DELETE  FROM  `Table_Temp`;";
                    echo $req_del."
";
                    $res = mysql_query($req_del,$connect_inject) or die($req_del." ".mysql_error()."
");

                 /*   $select = "SELECT * FROM `Table_Temp`";
                    $test = mysql_query($select,$connect_inject) or die($select." ".mysql_error()."
");
                    $o_test = mysql_fetch_object($test);  
                    echo "echo apres delete ";print_r($o_test);echo "

";    */
                     

                    $req = "SELECT se.IMSI, sm.NUM_ABO, se.NSCE, sm.MSISDN, cl.NUM_HIGHDEAL,tr.DATE_TRANS
                           FROM STOCK_NSCE as se
                           left join STOCK_MSISDN as sm on se.MSISDN = sm.MSISDN
                           left join CLIENT as cl on cl.ID_CLIENT = sm.ID_CLIENT
                           left join TRANSACTION as tr on tr.ID_CLIENT = cl.ID_CLIENT
                           WHERE IMSI = '$IMSI';";   

                   $R_req = mysql_query($req, $connect_select) or die (mysql_error());
                   while($O_req = mysql_fetch_object($R_req))
                          {
                           echo $O_req->NUM_ABO . " : " . $O_req->NSCE . " : " . $O_req->MSISDN . " : " . $O_req->NUM_HIGHDEAL . " : " . $O_req->DATE_TRANS;
                           echo "
";
         
                              }   
                    if($premrier_ligne > 1)
                     {
                           $nom = $valeur[$row][0];
                        $imsi = $valeur[$row][1];
                        $sim13 = $valeur[$row][2]; 
                        $datouvdossier = $valeur[$row][3];
                        $dossier = $valeur[$row][4];
                        $durée = $valeur[$row][5];
                        $hhmmss = $valeur[$row][6];
                        $mont_euros = $valeur[$row][7];
                        $PaysdestinationouTypeAppel = $valeur[$row][8];
                        $datealarme = $valeur[$row][9];
                        $Date1ereAlarme = $valeur[$row][10];
                        $Nbsortie = $valeur[$row][11];  
                     
                                               
                             //réccuperer les valeur du requete en variable         
                  while($rows = mysql_fetch_array($R_req))
                         {
                          $NUM_ABO = $rows["NUM_ABO"];
                          $Nsce = $rows["Nsce"];
                          $MSISDN = $rows["MSISDN"];
                          $NUM_ABO = $rows["NUM_HIGHDEAL"];
                          $DATE_TRANS = $rows["DATE_TRANS"];
                           }  
                         //requete insertion dans la base
                        $insert_req = "INSERT INTO `Alarmes` VALUES ('$NUM_ABO','$Nsce','$MSISDN','$NUM_HIGHDEAL','$DATE_TRANS','$DateAlarme','$Date1erAlarme','','','','','$Durée','','','$Montant');";         
                        $res = mysql_query($insert_req, $connect_inject) or die($insert_req." ".mysql_error()."
");
                        echo $insert_req. "
";
                        echo "requete INSERTION EN BASE ALarmes_Oranges. ";                         
                        $premrier_ligne++;
                                              }     
                /*    $insert_req = "INSERT INTO `Alarmes` VALUES ('$NUM_ABO','$Nsce','$MSISDN','$NUM_HIGHDEAL','$DATE_TRANS','$DateAlarme','$Date1erAlarme','','','','','$Durée','','','$Montant');";         
                    $res = mysql_query($insert_req,$connect_inject) or die($insert_req." ".mysql_error()."
");  */
                   
                    $row++;
                   
                    }
                   
                  echo $Nom;
                  echo $IMSI;
                  echo $SIM13;
                  echo $DatOuvDossier;
                  echo $Dossier;
                  echo $Durée;
                  echo $hhmmss;
                  echo $Mont_Euros;
                  echo $PaysdestinationouTypeAppel;
                  echo $Date1ereAlarme;
                  echo $Nbsortie;
                 
                     echo "";
                      print_r ($valeur[$row]);
                     echo "

";    
                fclose($handle);
            break;
            case "Roam_Breizh":
                echo "Nom du fichier : ".$f."
";
            /*    $inF = fopen($rep.$f,"r");
                echo $rep.$f."
";               
                while (!feof($inF))
                {
                    $ligne = fgets($inF, 4096);
                    $valeur = explode(";", $ligne);
                    //echo $ligne."
";
                echo "";
                print_r ($valeur);
                echo "

";      
                 }
                fclose($inF);    */       
            break;
            case "Surc_Breizh2008-142-BZH":
                 echo "Nom du fichier : ".$f."
";
                /* $inF = fopen($rep.$f,"r");
                 echo $rep.$f."
";                 
                while (!feof($inF))
                {
                    $ligne = fgets($inF, 4096);
                    $valeur = explode(";", $ligne);
                    //echo $ligne."
";
                 echo "";
                  print_r ($valeur);
                 echo "

";      
                 }   
            fclose($inF);    */
            break;
            case "Surc_Breizh":
            echo "Nom du fichier : ".$f."
";
            /* $inF = fopen($rep.$f,"r");
             echo $rep.$f."
";             
                while (!feof($inF))
                {
                    $ligne = fgets($inF, 4096);
                    $valeur = explode(";", $ligne);
                    //echo $ligne."
";
                    echo "";
                     print_r ($valeur);
                    echo "

";      
                 }
                fclose($inF);  */
            break;
            case "FAF_Breizh":
            echo "Nom du fichier : ".$f."
";
            /* $inF = fopen($rep.$f,"r");
             echo $rep.$f."
";           
                while (!feof($inF))
                {
                    $ligne = fgets($inF, 4096);
                    $valeur = explode(";", $ligne);
                    //echo $ligne."
";
                    echo "";
                     print_r ($valeur);
                    echo "

";      
                 }
                fclose($inF);  */
            break;
            case "FAF_Virgin":
            echo "Nom du fichier : ".$f."
";
        /*    $inF = fopen($rep.$f,"r");
            echo $rep.$f."
";           
                while (!feof($inF))
                {
                    $ligne = fgets($inF, 4096);
                    $valeur = explode(";", $ligne);
                    //echo $ligne."
";
                echo "";
                print_r ($valeur);
                echo "

";      
               
                 }
                fclose($inF);    */
            break;
            default:
            echo $rep.$f."
";
            break;
        }
   
   }
   }
   mysql_close($connect_select);
   mysql_close($connect_inject);
}
?>
0
Rejoignez-nous