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 :

Erreur requete insertion


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut Erreur requete insertion
    Bonjour à tous.

    j'ai ce fichier qui permet de charger les données dans une base Mysql, il fait trois choses:
    1. modification des produits déja existant dans la base
    2. ajout de nouveau produits
    3. garder les produits deja existant intact(donc pas de traitement specifique)

    quand je charger la base(en csv)pour mettre à jour la base, j'ai cette 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 'écriture avec corps en métal et attributs en métal dorés. Plume en acier inoxyda' at line 1)
    mon fichier si qqn peut jetter un coup d'oeil.
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    <?php
    if(!empty($_POST['send'])) {
     $csv_file = $_FILES['csv_file']['name'];
     
    if(!empty($csv_file)) {
            //On simplifie le nom des variables $_FILES
         $tmp_name=$_FILES['csv_file']['tmp_name'];
         $name=$_FILES['csv_file']['name'];
         $size=$_FILES['csv_file']['size'];
         $type=$_FILES['csv_file']['type'];
         $erreur=$_FILES['csv_file']['error'];
     
       //On affiche les différentes variables
     
       echo "Nom du fichier :".$name;
       echo "<br>Taille du fichier :".$size;
       echo "<br>Type de fichier :".$type;
       //echo "<br>Nom temporaire :".$tmp_name;
       echo "<br>Erreur :".$erreur;
       echo "<br />";
     
    //On crée une variable contenant le répertoire de destination
    $uploadpath="/var/www/apache2-default/script/";
     
    //On déplace le fichier du dossier temporaire vers le dossier de destination
     
    move_uploaded_file($tmp_name,$uploadpath.$name);
     
    $fichier= fopen($name, 'rb');
    $references= array();                                                   //on crée un tableau pour les références
    mysql_connect("localhost","root","root");                       //on se connecte à la BD
    mysql_select_db("produits");
    $query="select ref from objets" or die(mysql_error());  //on récupère toutes les références éxistantes dans la base pour les comparer
    $reponse= mysql_query($query);                  //on stoque le résultat de la requete dans la variable $reponse
    $r=0;
    while ($donnees = mysql_fetch_array($reponse))
    {
            $references[$r]=$donnees['ref'];
            //echo $references[$r]."<br />";
            $r++;
    }
     
    $tab=array();                                                                   // tab va servir à stocker les valeur des champs de chaque ligne du fichier csv
    echo "<table border='1'>\n";
     
    $prem = fgetcsv($fichier,1024, ";");                    //on lie la première ligne du fichier pour que le pointeur commence par la 2ème lors du traitement
     
    for ($ligne = fgetcsv($fichier, 1024, ";"); !feof($fichier); $ligne = fgetcsv($fichier, 1024, ";")) {           //on parcourt le fichier ligne par ligne
    echo "<tr>";
    $j = sizeof($ligne);
    $bool = false;
      for($m=0; $m < sizeof($references); $m++){
            if($ligne[0] == $references[$m])
            {
                    $bool =true;
            }
      }
            if($bool== true){
                    $query="update prix set P1=$ligne[11]*$ligne[10], P2=$ligne[12]*$ligne[10], P4=$ligne[13]*$ligne[10], P5=$ligne[14]*$ligne[10], P10=$ligne[15]*$ligne[10], P15=$ligne[16]*$ligne[10], P20=$ligne[17]*$ligne[10], qte=$ligne[9] where ref= '$ligne[0]'" or die(mysql_error());
                    //echo $ligne[9];
                    mysql_query($query);
            }
    if(!$bool){
            for ($i = 0; $i < $j; $i++) {
        $tab[$i]=$ligne[$i];
       if($i == 7){
            $categories = explode("-",$tab[$i]);
            $k= sizeof($categories);
            //on parcours les valeurs multiples des catégories
            for($l=0;$l<$k;$l++){
                    //s'il n'y a pas de catégories on sort de la boucle
                    if($categories[$l]==''){break;}
                    //on insère les couples catégorie référence dans la table de liaison
                    $query="insert into int_obj_cat(cid,ref) values($categories[$l],'$tab[0]')";
                    mysql_query($query)or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
                    //echo "categories : ".$categories[$l]."&nbsp";
     
              }
           }
     
        else if($i == 8){
            $couleurs=explode("-",$tab[$i]);
            $k=sizeof($couleurs);
            //on parcourt ttes les valeures multiples de couleurs
            for($l=0;$l<$k;$l++){
                            // si le champs couleurs est vide on sort de la boucle
                    if($couleurs[$l] ==''){break;}
                    //on insère les couples couleur référence dans la table de liaison
                    $query="insert into int_obj_coul(cid,ref) values($couleurs[$l],'$tab[0]')";
                    mysql_query($query)or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
                    //echo "couleurs : ".$couleurs[$l]."&nbsp";
            //mysql_close();
              }
           }
         else if($i == 22){
            $tailles=explode("-",$tab[$i]);
            $k=sizeof($tailles);
            //on parcourt ttes les valeures multiples de tailles
            for($l=0;$l<$k;$l++){
                            // si le champs taille est vide on sort de la boucle
                    if($tailles[$l] ==''){break;}
                    //on insère les couples taille référence dans la table de liaison
                    $query="insert into int_obj_tail(tid,ref) values($tailles[$l],'$tab[0]')";
                    mysql_query($query)or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
                    //echo "tailles : ".$tailles[$l]."&nbsp";
            }
        }
     
        echo "<td>$tab[$i]</td>";
        }
     
    $query1 = "insert into objets(ref,nom,descriptif,nom_all,descriptif_all,prix,fournisseur,type)values('".$tab[0]."','".$tab[2]."','".$tab[4]."','".$tab[3]."','".$tab[5]."',$tab[10],$tab[1],'".$tab[6]."')";
        $query2= "insert into prix(id,ref,P1,P2,P4,P5,P10,P15,P20,qte) values('','$tab[0]',$tab[11]* $tab[10],$tab[12] * $tab[10],$tab[13] * $tab[10],$tab[14] * $tab[10],$tab[15] * $tab[10],$tab[16] * $tab[10],$tab[17] * $tab[10],$tab[9])";
     
            mysql_query($query1)or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
            mysql_query($query2)or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
        echo "</tr>";
      }
    }
    echo "</table>\n";
    mysql_close();
    }
    }
    ?>
     
    </body>
    </html>

    voici le fichier csv comment il est constitué:

    OM190033;19; DELGADO ANTHRACITE OU BLEU/ALU STYLO PLUME;;Instruments d'écriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;15-40;50;4.733;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;

    Merci de votre aide
    j'ai oublié une chose, sur un poste WX avec easyPHP ça marche nickel.le problème je le veux sur Linux.
    j'ai pensé à faire la procedure sur windows ensuite importé la base, mais j'ai un gros problème d'affichage de caractère, donc j'ai aussitot arreter car je connais ce genre de problème.

  2. #2
    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
    Fait un echo de la requete qui ne fonctionne pas.
    Ca sera plus facile pour voir ce qui ne va pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    j'ai des echo pour chaque requete est j'ai ces messages d'erreurs;

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select ref from objetsinsert into objets(ref,nom,descriptif,nom_all,descriptif_all,prix,fournisseur,type)values('OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,','','','','',,,'')insert into prix(id,ref,P1,P2,P4,P5,P10,P15,P20,qte) values('','OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',* , * , * , * , * , * , * ,)
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur SQL !
    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 ','')' at line 1
    OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

  4. #4
    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 étrange le guillemet disparait apres le premier élément.

    Tu pourrais faire un print_r($tab); avant la requete ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    values('OM190031;19; DELG...
    Tu n'as pas séparé les colonnes donc il essaie de mettre toute la ligne de ton fichier source dans la colonne ref.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    voila ce que ça m'affiche:
    Merci quand meme les gars, vous etes bien sympa pour votre aide

    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select ref from objets
    Array ( [0] => OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, )
     insert into objets(ref,nom,descriptif,nom_all,descriptif_all,prix,fournisseur,type)values('OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,','','','','',,,'')
    insert into prix(id,ref,P1,P2,P4,P5,P10,P15,P20,qte) values('','OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',* , * , * , * , * , * , * ,)
    
    Erreur SQL !
    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 ','')' at line 1
    OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tailles=explode("-",$tab[$i]);
    Pourquoi tu fais des explode sur le caractère - alors que tes champs sont séparés par des ; ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    en fait c'est un code que j'ai repris depuis ce matin, ce code est fait par une autre parsonne. cette personne n'est plus là.
    Je vais tenter de supprimer les directives explodes alors, c'est bien ça que vous me demandez?
    je vous dirai ce que ca donne par la suite.

  9. #9
    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
    Heu non il faudrait mettre ";" à la place de "-"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    toujours ceci:
    c'est toujours compliquer de reprendre le code deja fait par qqn!!!
    si vous avez des idées je suis prenant: Merci
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select ref from objets
    Array ( [0] => OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ) 
    
    insert into objets(ref,nom,descriptif,nom_all,descriptif_all,prix,fournisseur, type)values('tab[0]','','','','',,,)
    insert into prix(id,ref,P1,P2,P4,P5,P10,P15,P20,qte) values('','OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',* , * , * , * , * , * , * ,)
    
    Erreur SQL !
    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 ',)' at line 1
    OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

  11. #11
    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
    Franchement, je me demande si tu ne ferrais mieux pas de le ré-écrire car ce code est souvent alambiqué pour rien :

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $r=0;
    while ($donnees = mysql_fetch_array($reponse))
    {
            $references[$r]=$donnees['ref'];
            //echo $references[$r]."<br />";
            $r++;
    }
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ($donnees = mysql_fetch_array($reponse))
    {
            $references[]=$donnees['ref'];
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      for($m=0; $m < sizeof($references); $m++){
            if($ligne[0] == $references[$m])
            {
                    $bool =true;
            }
       if($bool== true){
                 blablablabla
            }
    if(!$bool){
           blibliblibli
     
      }
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (in_array($ligne[0], $reference)) {
        blablabla
    }
    else {
      blibliblibli
    }
    Pour ton problème précis :
    - $tab[0] ne devrait pas contenir ça puisqu'il vient de $ligne[0] qui devrait etre le premier element de chaque ligne.
    Controle l'evolution des variables dans le script pour voir ou ca coince.

    Il y a, a mon avis, un probleme sur ton fichier csv parce que moi j'obtiens bien pour $tab :
    Array ( [0] => OM190033 [1] => 19 [2] => DELGADO ANTHRACITE OU BLEU/ALU STYLO PLUME .....

    Pour finir, est-il normale que la lecture du csv commence a la 3eme ligne ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    Merci les gars pour toutes ces informations.
    franchement je ne comprends pas d'ou ca peut venir.
    que ça commence à la 3eme ligne ce n'est pas normal.

  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
    Si tu peux mettre un extrait de ton fichier csv ici, je regarde ce qu'il donne.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    quand je l'ouvre avec Excel ça me donne ceci: je vous juste mi une seule ligne, si vous voulez que je mette d'avantage de ligne pas de soucis.


    OM190031 19 DELGADO CHROME/DORE STYLO PLUME Instruments d'écriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M). Objet 396 38 50 5.203 2.00 0.00 2.00 0.00 2.00 0.00 2.00

  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
    Ouvre le avec un editeur de texte plutot genre notepad, s'il n'est pas enorme.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    je vous envoie deux lignes: chaque ligne commence avec OM1900xx
    encore merci bcp.

    OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments d'écriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;
    OM190032;19; DELGADO NOIR/DORE STYLO PLUME;;Instruments d'écriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;40;50;5.329;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;

  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
    Tu peux mettre un print_r pour voir ce que tu recuperes du fichier csv ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for ($ligne = fgetcsv($fichier, 1024, ";"); !feof($fichier); $ligne = fgetcsv($fichier, 1024, ";")) {           //on parcourt le fichier ligne par ligne
    print_r ($ligne); echo '<br /><br />';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  18. #18
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    j'ai ceci:



    select ref from objets
    Array ( [0] => OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, )

    Array ( [0] => OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ) insert into objets(ref,nom,descriptif,nom_all,descriptif_all,marquage,prix,fournisseur, type,activer,delais)values('tab[0]','','','','',,,)
    insert into prix(id,ref,P1,P2,P4,P5,P10,P15,P20,qte) values('','OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',* , * , * , * , * , * , * ,)
    Erreur SQL dans le insert into objets !
    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 ',)' at line 1
    OM190031;19; DELGADO CHROME/DORE STYLO PLUME;;Instruments décriture avec corps en métal et attributs en métal dorés. Plume en acier inoxydable doré à pointe iridium (M).;;Objet;396;38;50;5.203;2.00;0.00;2.00;0.00;2.00;0.00;2.00;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

  19. #19
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    si ça peut vous aider, la table objet ressemble à ceci:

    CREATE TABLE IF NOT EXISTS `objets` (
    `ref` varchar(25) NOT NULL default '',
    `nom` varchar(150) NOT NULL default '',
    `descriptif` text NOT NULL,
    `nom_all` varchar(255) NOT NULL default '',
    `descriptif_all` text NOT NULL,
    `marquage` int(11) NOT NULL default '0',
    `prix` int(11) NOT NULL default '0',
    `fournisseur` int(11) NOT NULL default '0',
    `type` varchar(20) NOT NULL default 'objet',
    `activer` enum('1','0') NOT NULL default '1',
    `delais` int(11) NOT NULL default '15',
    PRIMARY KEY (`ref`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

  20. #20
    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
    Remontons d'un cran :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $prem = fgetcsv($fichier,1024, ";");
    echo 'PREM '; print_r ($prem); echo '<br><br>';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Erreur requete INSERT INTO en java mySQL
    Par ninya dans le forum Débuter
    Réponses: 1
    Dernier message: 08/01/2010, 11h15
  2. erreur requete INSERT
    Par benga69 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 29/09/2008, 18h11
  3. Réponses: 2
    Dernier message: 01/04/2008, 10h38
  4. message d'erreur sur requete INSERT
    Par captainamerica75 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/05/2007, 14h21
  5. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 18h32

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