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 une seule et même donnée chaque ligne SQL / PHP


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Par défaut Extraire une seule et même donnée chaque ligne SQL / PHP
    Bonjour à tous,

    Je lutte quelque peu afin d'extraire la même donnée dans chaque ligne d'un tableau SQL via PHP afin d'en faire la somme. Je m'explique: j'ai un tableau SQL contenant plusieurs lignes, dont une colonne qui contient les données séparées par " / " (par exemple dans la même ligne: coca 1 / vin 2 / bière 12...). Mon objectif est d'extraire par exemple "coca (1)" dans chaque ligne et de faire la somme de chaque produit afin de réaliser un inventaire. Voici le tableau:

    Nom : Nouvelle image (4).jpg
Affichages : 186
Taille : 65,9 Ko

    J'utilise pour l'instant ce code php:
    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
    $sql = 'SELECT pedido FROM ordenes';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    $totalPrix = 0;
    while ($result3 = mysql_fetch_array($req)) 
    {
     
    $NWtest = $result3['pedido'] ; 
    $porciones = explode("/", $NWtest, -1);
     
    	$chiffres = preg_split('`[a-z]`', $porciones[0], -1, PREG_SPLIT_NO_EMPTY);
    	$lettres = preg_split('`[0-9]`',$porciones[0], -1, PREG_SPLIT_NO_EMPTY);
    	$numA = implode("",$chiffres);
    	$letA = implode("",$lettres);
     
    echo $numA;
     
    $totalPrix += $numA; 
     
    }
    echo "<br>"; 
    echo $totalPrix;

    Le $porciones[0] me renvoie la première valeur de la ligne avant la séparation " / " (réalisée par $porciones = explode("/", $NWtest, -1). Mais je souhaiterais automatiser le script afin qu'il extraie les données selon le nom (coca, vin, bière etc.) et non la place occupée dans la ligne...

    Je vous remercie grandement par avance.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Salut,

    Et qu'est-ce que tu voudrais faire afficher exactement ?

    Au passage tu aurais certainement intérêt à demander le déplacement de ton sujet dans le forum php pour avoir plus de réponses.

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Par défaut
    Bonjour,

    J'aimerais que le script php puisse dans la colonne "pedido" extraire par exemple toutes les valeurs "napoletana grande" et en calculer la somme. Comme tu peux le voir je n'ai pas séparé dans différentes colonnes les produits, ils sont séparés dans la même colonne par " / ".

    PS: Comment puis-je faire pour déplacer le sujet ?

    Merci

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    J'étais persuadé qu'il existait un bouton pour demander le déplacement mais je ne retrouve plus qu'un bouton pour signaler un sujet hors charte. Peut être as-tu plus d'options vu que c'est toi qui a initié le sujet... Sinon il faut demander à un modérateur.

    A part cela concernant ton problème tu peux créer un tableau dans ta boucle qui aura comme index la valeur que tu veux grouper.

    Par exemple si chaque ligne me renvoie les valeurs a, b, c, d, je peux grouper suivant les valeurs de "a" en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $tab_result= array();
     
    while ($result = mysql_fetch_array($req)) 
    {
     $tab_result[$result['a']]['b'] = $result['b'];
     $tab_result[$result['a']]['c'] = $result['c'];
     $tab_result[$result['a']]['d'] = $result['d'];
    }
     
    // pour vérification du résultat
    echo '<pre>';
    print_r($tab_result);
    echo '</pre>';

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Par défaut
    Merci Je crois que j'ai trop travaillé sur ce script lol

    Pourrais-tu m'illustrer ton exemple avec des valeurs de ma table sql ? Je t'en serait infiniment reconnaissant.

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Un truc dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    while ($result = mysql_fetch_array($req)) 
    {
    //... ton code qui défini $lettres, $chiffres, $numA, $letA
     
     
     $tab_result[$lettres]['chiffres'] = $chiffres;
     $tab_result[$lettres]['numA'] = $numA;
     $tab_result[$lettres]['letA'] = $letA;
    }
     
    // pour vérification du résultat
    echo '<pre>';
    print_r($tab_result);
    echo '</pre>';
    Là je récupères toutes les valeurs mais tu peux en supprimer si certaines ne te servent pas dans ton résultat.

Discussions similaires

  1. Charger les données une seule fois ou dans chaque session.
    Par archer dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 28/10/2010, 12h18
  2. Réponses: 2
    Dernier message: 08/03/2010, 17h33
  3. [PHP 5.0] Extraire une seule donnée avec SimpleXML
    Par kryogen dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2009, 12h09
  4. repaint() d'une seule couche de données
    Par seiryujay dans le forum Graphisme
    Réponses: 5
    Dernier message: 11/05/2006, 13h58
  5. Réponses: 18
    Dernier message: 10/02/2005, 13h22

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