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 :

Extraire donnée et somme [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 112
    Par défaut Extraire donnée et somme
    Bonjour,
    Suite à la requête suivante et une boucle WHILE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql =" SELECT value FROM table WHERE ID = '$codeisin'";
    j'obtiens les données de la façon suivante:
    Dans ce cas la colonne 'value' pour '$codeisin' contient 6 nombres
    Cette variable récupère la valeur de plusieurs champs répondant aux condition de tri de la requête ce qui donne ça lors de l'affichage:
    123,4567,21023,567,2 la valeur des champs est (1 | 23,4 | 567,2 | 10 | 23,5 | 67,2)

    Comment faire pour obtenir une sortie de type
    $valcolone_1 = 1
    $valcolone_2 = 23,4
    $valcolone_3 = 567,2
    etc...
    Sachant que le nombre de champs est variable

    Tout cela afin d'additionner ces valeurs

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Quelle est la règle d'identification des valeurs à partir de la chaîne récupérée ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 112
    Par défaut
    Quelle est la règle d'identification des valeurs à partir de la chaîne récupérée ?
    c'est bien là mon pb il n'y a rien qui permette de délimiter les valeurs...

    ma table stock plusieurs code isin affectés à un ou plusieurs client après le tri dans la requête (qui n'est pas celle que j'utilise mais juste un exemple) la requête me renvois toutes les valeurs 'isin' pour le client dans une variable de ce type:
    $data['value'] <-- contient donc toutes les valeurs sous cette forme 123,4567,21023,567,2

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par Loupita Voir le message
    c'est bien là mon pb il n'y a rien qui permette de délimiter les valeurs...
    Bon là je crois que tu as ta réponse.

    Par contre, il te reste une chance en dépieutant la requête qui assemble et renvoie cette chaine "farfelue"
    Et le code isin il a une structure particulière qui permettrait de l'isoler ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 112
    Par défaut
    Pourquoi farfelue ? dépieuter... c'est bien ma question.

  6. #6
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    ce qu'il veut te dire c'est qu'il est impossible de déconcaténer un truc si aucun motif ou séparateur ne permet de différencier les éléments...

    là tu as des entiers et réels sur un nombre de chiffres aléatoires collés les uns contre les autres sans séparateur... donc c'est irréversible

  7. #7
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Et c'est qui, qui a eu l'idée de mettre des valeurs dans une même chaîne sans aucunes régles ? Je pense qu'il doit bien y avoir une solution, on ne stocke pas des valeurs sans savoir les récupérer !

    Regardes aussi, au niveau de l'écriture de ces données, tu auras peut être une solution.

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 112
    Par défaut
    Bonjour,

    Merci à tous pour vos réponses.

    j'ai contourner le pb de la façon suivante:

    ma sources de donnée (fichier .txt ou .csv) connait la quantité et la valeur unitaire pour chaque produit, lors de la màj de ma db, j'insère la quantité puis le montant de la valeur pour la quantité le tout dans un champ FLOAT (15,2).
    Afin de connaitre la valeur pour tous les produits détenus par un client, je fais la requête suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query="SELECT SUM(totalvalue)  FROM stock WHERE root = '$client'";
    De cette façon je connais la valeur du stock pour ce client.

    je ne sais pas si c'est la bonne méthode, mais elle fonctionne.

    @Fench
    Et c'est qui, qui a eu l'idée de mettre des valeurs dans une même chaîne sans aucunes régles ?
    Quand tu parle de règles, il s'agit bien des conditions d'insertion dans la db ? du formatage des champs de la db ? Dans ce cas, mon champ est formaté de la façon suivante, FLOAT (15,2) Comme recommandé ici: http://dev.mysql.com/doc/refman/5.0/...-overview.html

  9. #9
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Si tu as réussi c'est cool !

    Je me demandais en fait que connaissant uniquement une chaîne comme par exemple: 123,4567,21023,567,2 sans rien, nous pouvons en déduire pleins de résultats possibles

    Alors une possibilité c'est lors de l'enregistrement, ce dernier est fait suivant des régles qui seront utilisées pour l'extraction (genre: le premier un entier sur 1, le deuxième un float sur 4, 1 etc ...)

  10. #10
    Membre confirmé
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 112
    Par défaut
    Je me demandais en fait que connaissant uniquement une chaîne comme par exemple: 123,4567,21023,567,2 sans rien, nous pouvons en déduire pleins de résultats possibles
    Comme le dit rawsrc, et après avoir trouvé une solution qui m'a permis de comprendre, sans délimiteur c'est à mon avis impossible par contre, vu que j'ai modifé le format de mon champ FLOAT (15,2) 2 étant le nombre de chiffre après le point il est peu être possible d'utiliser ce délimiteur pour extaire les différents nombres contenu dans ma chaine... en insérant un espace systématiquement après le deuxième caractère après le point.

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

Discussions similaires

  1. extraire donné fichier txt afficher dans xml
    Par jasminrose dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 01/04/2007, 12h14
  2. Extraire données d'une table par date
    Par Hombe dans le forum Langage SQL
    Réponses: 7
    Dernier message: 08/11/2006, 23h03
  3. Extraire données par date du jour
    Par Hombe dans le forum Oracle
    Réponses: 6
    Dernier message: 08/11/2006, 11h14
  4. Extraire données d'un webservice , xml , php ..
    Par Lettue dans le forum Langage
    Réponses: 1
    Dernier message: 14/09/2006, 19h24
  5. Extraire données fichier txt
    Par philippef dans le forum Langage
    Réponses: 1
    Dernier message: 10/10/2005, 17h12

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