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 :

besoin d'aide pour requete simple ! [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Par défaut besoin d'aide pour requete simple !
    Bonjour,

    j'ai un problème se syntaxe. Je cherche à "updater" ma base mais ma requète ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE art_mod_mat                         
            SET pds = ".(double)$data[1]."
            WHERE ref_art = '".mysql_real_escape_string($data[0])."'
    j'ai un fichier MAJ.csv constitué de deux colonnes

    Merci de votre aide !

    Jac

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    bonjour,

    Et quelle est l'erreur en fait ?
    Car la partie SQL de votre requête est juste donc... regardez plutôt du côté de votre code applicatif.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Par défaut
    Citation Envoyé par punkoff Voir le message
    bonjour,

    Et quelle est l'erreur en fait ?
    Car la partie SQL de votre requête est juste donc... regardez plutôt du côté de votre code applicatif.


    Il m'indique :

    #1064 - 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 '"A536"' at line 1

    A536 était la première valeur de mon fichier.

    Cela peut il venir du fichier CSV ?

    Je fait la requète directement de PHPMYADMIN.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    euh... je suppose que tu ne mets pas directement les mysql_real_escape_string dans phpMyAdmin... Donc si tu pouvais nous donner la requête valorisée, ce serait plus clair.
    Et le code php qui exécute la requête, ça pourrait être utile aussi.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Par défaut
    Citation Envoyé par Celira Voir le message
    euh... je suppose que tu ne mets pas directement les mysql_real_escape_string dans phpMyAdmin... Donc si tu pouvais nous donner la requête valorisée, ce serait plus clair.
    Et le code php qui exécute la requête, ça pourrait être utile aussi.


    euh... bin si, je la met directement dans PHPMYADMIN.

    Je l'utilisais avant dans un PHP, lorsque je travaillais en local. Mais là c'est plus rapide de faire juste une requète ... non ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Par défaut
    Citation Envoyé par Celira Voir le message
    euh... je suppose que tu ne mets pas directement les mysql_real_escape_string dans phpMyAdmin... Donc si tu pouvais nous donner la requête valorisée, ce serait plus clair.
    Et le code php qui exécute la requête, ça pourrait être utile aussi.


    J'ai refait un script PHP pour faire la mis à jour.

    Code php : 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
     
    <?php
     
    ECHO "La mis à jours commence, le temps est lié à la taille de votre fichier";
    ECHO "<br>";
     
     
    //***************************************************************************************************************************
    // connection à la base
    //***************************************************************************************************************************
     
    mysql_connect('xxx','xxx','xxx')or die("Impossible de se connecter à la base de données"); 
    mysql_select_db('xxx') or die("ça marche toujours pas");
     
     
    //***************************************************************************************************************************
    // Lecture du fichier MAJ.csv ordre "ref_art";... tableau sans les titres
    //***************************************************************************************************************************
     
    $row = 1;
      $fp = fopen ("MAJ.csv","r");
      while ($data = fgetcsv ($fp, 1000, ";")) 
        {
        $num = count ($data);
     
    //***************************************************************************************************************************
    // Update les valeurs du fichier dans la base 'art_mod_mat'
    //***************************************************************************************************************************
     
    $query="UPDATE art_mod_mat                         
            SET pds = ".(double)$data[1]."
            WHERE ref_art = '".mysql_real_escape_string($data[0])."'";
     
    mysql_query($query) or die("Erreur de requête : ".$query);
     
    Echo $data[0]; Echo $data[1]; Echo "//" ;
     
     
    $row++;
        }   
    ECHO " c'est fait";
    ECHO "<br>";
     
      fclose ($fp);
     
    mysql_close(); 
     
    ?>


    Et... ça marche po ... et y pas d'erreur !
    En fait j'ai fait un echo en fin de fichier pour tester, il "fait" bien la totalité du fichier mais n'inscrit rien dans la BDD

    Pouvez vous m'éclairer ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 73
    Par défaut
    Bonjour,

    J'ai repris ton script php, en créant deux colonnes dans ma BD, avec un fichier csv bidon de deux colonnes remplie avec des char, et ton script met la BD à jour correctement.

    Peut être que les colonnes du tableau data que tu utilises sont inversées.
    Ou peut être que rien n'est inséré dans la BD parce que les données de ton fichier csv ne coordonnes pas avec les valeurs de ta base.

    En tout cas ne cherche pas du côté de l'algorithme car le code fonctionne.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Par défaut
    Le pb est résolu.

    en fait dans mon fichier CSV les variables étaient avec des "," et non des "."


    ça marche ouf !

    Merci à ceux qui m'ont répondu !

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

Discussions similaires

  1. Besoin d'aide pour Requetes SQL
    Par Sophyyy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/04/2009, 11h57
  2. [Toutes versions] Besoin d'aide pour Requetes SQL
    Par Sophyyy dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 23/04/2009, 15h52
  3. Besoin d'aide pour requête simple
    Par vallica dans le forum Requêtes
    Réponses: 6
    Dernier message: 16/02/2007, 09h33
  4. Création requete besoin d'aide pour une date
    Par royrremi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/07/2004, 22h03

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