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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Export .csv impossible (à cause de substring_index()? ) [phpMyAdmin]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Janvier 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Export .csv impossible (à cause de substring_index()? )
    bonjour le forum,

    je me décide à poster mon souci après avoir écumé le web en googlant comme un forcené sans succès.

    en bref : je n'arrive pas à exporter au format .csv une requête à partir de l'interface de phpMyAdmin alors que d'habitude aucun souci.
    apparemment cela vient du fait que j'utilise dans cette requête "substring_index()"
    la requête est exécutée à partir de l'interface phpmyadmin sans problème, par contre à l'export ça me génère un fichier fichier.csv.html qui reprend la requête avec à la suite :
    "MySQL a répondu:
    #1305 - FUNCTION labasededonnées.SUBSTRING_INDEX does not exist"

    qu'est ce que je fais de travers ? comment solutionner ce souci ? des pistes ?
    merci pour votre aide

    olivier

  2. #2
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Bonjour,

    Quelle est ta version de MySQL ?
    Tu ne tenterais pas d'utiliser SUBSTRING_INDEX sur une vue par hasard ?

    sinon fais voir ta requête...


  3. #3
    Candidat au Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Janvier 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    merci ska_root,

    avant tout je précise que je suis novice avec phpmyadmin et mysql

    la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT  `sales_flat_order_grid`.`increment_id` AS 'N° CDE' , `sales_flat_order_item`.`sku` AS 'REF PRODUIT' ,  
    SUBSTRING_INDEX(`sales_flat_order_item`.`name`, '-', -1) AS 'TAILLE',
    `sales_flat_quote_item_option`.`value` AS 'N° EQUIPAGE' ,  `sales_flat_order_item`.`name` AS 'NOM PRODUIT', `sales_flat_order_item`.`qty_ordered` AS 'QTE', `sales_flat_order_address`.`lastname` AS 'NOM', `sales_flat_order_address`.`firstname` AS 'PRENOM',  `sales_flat_order_address`.`street` AS 'ADRESSE', `sales_flat_order_address`.`city` AS 'VILLE' , `sales_flat_order_address`.`postcode` AS 'CP' , `sales_flat_order_address`.`region` AS 'REGION' , `sales_flat_order_address`.`country_id` AS 'PAYS' , `sales_flat_order_address`.`email` AS 'EMAIL' , `sales_flat_order_address`.`telephone` AS 'TELEPHONE'
    FROM `sales_flat_order_grid` 
    INNER JOIN `sales_flat_order_item` ON `sales_flat_order_grid`.`entity_id` = `sales_flat_order_item`.`order_id` 
    INNER JOIN `sales_flat_order_address` ON `sales_flat_order_address`.`parent_id` = `sales_flat_order_grid`.`entity_id`
    INNER JOIN `sales_flat_quote_item_option` ON `sales_flat_quote_item_option`.`item_id` = `sales_flat_order_item`.`quote_item_id`
    WHERE   `sales_flat_order_address`.`address_type` = "shipping" AND `sales_flat_order_grid`.`status` <> "canceled" AND `sales_flat_order_item`.`sku` LIKE '9311%' AND `sales_flat_order_item`.`product_type` = 'simple' AND `sales_flat_quote_item_option`.`code` = 'option_2' AND `sales_flat_order_grid`.`increment_id` > 100000128
    ORDER BY `sales_flat_order_grid`.`increment_id` DESC
    LIMIT 0 , 5000
    voici comment je procède :
    dans l'interface de phpmyadmin je clique sur 'SQL' dans le menu du haut, je colle ma requête dans le textarea "Exécuter une ou des requêtes sur la base.." j'exécute, là j'ai mes résultats. en bas je clique sur le bouton "exporter" > format CSV / Afficher les noms de champs en première ligne / Transmettre.

    l'admin de l'hébergeur (1&1) m'indique MySQL 5.0

    voilà, je dois faire une boulette mais ou ?

  4. #4
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Tu dois avoir des soucis avec les quotes :

    regarde cet exemple et essaies d'adapter le type de quote a ta requête, j'ai également remplacé les alias de table par de plus simples.

    Code sql : 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
     
    SELECT 
       g.increment_id AS `N° CDE`,
       i.sku AS `REF PRODUIT`,
       SUBSTRING_INDEX(i.name,'-',-1) as `TAILLE`
       ...
       ...
    FROM 
       sales_flat_order_grid g,
    INNER JOIN 
       sales_flat_order_item i ON g.entity_id = i.order_id
    INNER JOIN 
       sales_flat_order_address a ON a.parent_id = g.entity_id
       ...
       ...
    WHERE   
       a.address_type = 'shipping'
       ...
       ...


  5. #5
    Candidat au Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Janvier 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    merci ska_root,

    je vais essayer tout ça. je reviens vite confirmer.
    merci aussi pour l'optimisation de la requête.


    ps : ska_root en référence à la musique "ska" ? du style The Specials, The Selectors et autres groupes de ma jeunesse ?

  6. #6
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Citation Envoyé par olivier-b Voir le message
    ps : ska_root en référence à la musique "ska" ?
    vi vi ! moi c'était un peu plus classique genre Skatalites, Maytals, Judge Dread...

    ah là là...

  7. #7
    Candidat au Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Janvier 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    salut ska_root,

    bon alors le pb subsiste, j'ai le même message.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1305 - FUNCTION bdd.SUBSTRING_INDEX does not exist
    j'ai l'impression qu'on ne peut pas utiliser - de cette façon en tout les cas - substring_index() dans ce contexte (que dans un script php?).
    les résultats sont pourtant bien affichés, mais la procédure d'export en csv mais génère un fichier.csv.html avec la requête et le message d'erreur (alors qu'encore un fois via phpmyadmin j'ai bien les résultats ?)

    sinon merci pour l'optimisation de la requête (alias) c'est vrai que c'est plus clair.

    je relance le topic alors en espérant que qqun pourra me donner une piste, je ne trouve rien pour l'instant.

    merci
    olivier

    ps : ouais dis donc ! ce n'est pas souvent que je tombe sur des amateurs de ska !

  8. #8
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Bonjour,

    désolé, mais chez moi ça fonctionne :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT SUBSTRING_INDEX( c.create_date, '-', 1 ) as `année de création`
    FROM commentaire c
    LIMIT 0 , 30

    les champs date concernés contiennent des dates au format "yyyy-mm-dd hh:ii:ss" et le résultat me sort bien ce que l'on attend (cf: PJ)



    [edit] oups, j'ai mal lu ton message précédent... chez moi l'export csv pour msexcel fonctionne normalement sur le résultat. peut-être as-tu positionné une mauvaise option dans ton panneau d'export.

    Images attachées Images attachées   

  9. #9
    Candidat au Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Janvier 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    re,

    le format "csv pour excel" ne change rien pour moi.
    de ton côté lorsque tu cliques sur "exécuter" il te génère bien un fichier.csv que tu peux ouvrir avec excel ? ou bien tu te retrouves comme moi avec un fichier.csv.html ? le cas échéant ce fichier ne contient aucuns résultats, juste la requête et le msg d'erreur.

    je te donne la requête peut être qque chose m'echappe ?

    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
    SELECT  g.increment_id AS `N° CDE` ,
    i.sku AS `REF PRODUIT` ,
    SUBSTRING_INDEX(i.name, '-', -1) AS `TAILLE` ,
    o.value AS `N° EQUIPAGE` ,
    i.name AS `NOM PRODUIT` ,
    i.qty_ordered AS `QTE` ,
    a.lastname AS `NOM` ,
    a.firstname AS `PRENOM` ,
    a.street AS `ADRESSE` ,
    a.city AS `VILLE` ,
    a.postcode AS `CP` ,
    a.region AS `REGION` ,
    a.country_id AS `PAYS` , 
    a.email AS `EMAIL` ,
    a.telephone AS `TELEPHONE`
     
    FROM sales_flat_order_grid g
    INNER JOIN sales_flat_order_item i ON g.entity_id = i.order_id 
    INNER JOIN sales_flat_order_address a ON a.parent_id = g.entity_id
    INNER JOIN sales_flat_quote_item_option o ON o.item_id = i.quote_item_id
     
    WHERE   a.address_type = 'shipping' AND g.status <> 'canceled' AND i.sku LIKE '9311%' AND i.product_type = 'simple' AND o.code = 'option_2' AND g.increment_id > 100000128
    ORDER BY g.increment_id DESC
    LIMIT 0 , 5000
    encore merci pour ton aide.

    olivier

  10. #10
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Citation Envoyé par olivier-b Voir le message
    de ton côté lorsque tu cliques sur "exécuter" il te génère bien un fichier.csv que tu peux ouvrir avec excel ?
    oui, d'ailleurs j'ai essayé :
    - avec les deux options d'export (CSV et CSV-MSExcel) et lecture dans office2010.
    - avec l'option Excel2000 et lecture dans office2000.

    les deux fonctionnent normalement. ta requête n'y est pour rien, je pense plutôt a un souci avec ton phpmyadmin...


  11. #11
    Candidat au Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Janvier 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    salut le forum, ska_root,

    je reviens déterrer ce post et confirmer l'intuition de ska_root
    c'est effectivement la version de phpmyadmin qui est à incriminer.
    la fonction substring_index() ne passe pas sous la v. 2.6.4-pl3 lors de l'export.
    tout va bien avec la v. 3.2.5

    merci à toi encore ska_root, j'ai frôlé la dépression...

    A +

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

Discussions similaires

  1. Impossible de créer un fichier d'export CSV
    Par rec82 dans le forum Bases de données
    Réponses: 7
    Dernier message: 27/02/2009, 20h42
  2. Import/export sql 2000 impossible à causes des clés étrangères
    Par chouchou2clichy dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/03/2007, 08h27
  3. [EXPORT] CSV
    Par sleepy2002 dans le forum Oracle
    Réponses: 2
    Dernier message: 03/04/2006, 10h14
  4. Export CSV
    Par lapartdombre dans le forum Documents
    Réponses: 12
    Dernier message: 17/10/2005, 14h46
  5. Export CSV de champs qui contiennent des ";"
    Par boteha dans le forum Outils
    Réponses: 4
    Dernier message: 19/09/2005, 19h05

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