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 la création des boucle [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut Besoin d'aide pour la création des boucle
    Bonjour,

    J'ai du revoir une partie de mes codes, voila aujourd'hui je dois mettre en place une boucle pour la récupération et le traitement de mes resultat issus de deux bases de données.
    Les deux base concernées sont facture et relance
    voici la structure
    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
     
    -- phpMyAdmin SQL Dump
    -- version 3.2.0.1
    -- http://www.phpmyadmin.net
    --
    -- Serveur: localhost
    -- Généré le : Dim 28 Février 2010 à 18:50
    -- Version du serveur: 5.1.36
    -- Version de PHP: 5.3.0
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    --
    -- Base de données: `dus`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `facture`
    --
     
    CREATE TABLE IF NOT EXISTS `facture` (
      `id_numero` varchar(7) NOT NULL,
      `f_facture` varchar(14) NOT NULL,
      `intitule` varchar(60) NOT NULL,
      `montant` double NOT NULL,
      `session` tinytext NOT NULL,
      `date_fact` varchar(20) NOT NULL,
      `date_echeance` varchar(20) NOT NULL,
      `type_fact` varchar(15) NOT NULL,
      `annee` varchar(5) NOT NULL,
      PRIMARY KEY (`f_facture`),
      UNIQUE KEY `facture` (`f_facture`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `relance`
    --
     
    CREATE TABLE IF NOT EXISTS `relance` (
      `id_numero` varchar(7) NOT NULL,
      `f_facture` varchar(14) NOT NULL,
      `date` varchar(10) NOT NULL,
      KEY `f_facture` (`f_facture`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Voila, dans la récupération des données sur les deux table je dois faire un count sur les date par facture afin de déterminer le nombre de relance qui a été effectué a priori seulement avec un for on peux le faire.

    Comme je suis pas doué a ce niveau j'espère avoir un peux d'aide ici.

    J'ai commencer a mettre en place une parti du code mais la je bloque

    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
     
     
    <?php
     
    include ('../inc/inc_connexion.php');
    $date="";
     
    $requete="SELECT relance.f_facture, COUNT(relance.f_facture) AS relance, facture.id_numero, relance.date, facture.intitule, facture.montant, facture.date_fact, facture.date_echeance, facture.montant FROM relance,facture
    WHERE facture.f_facture = relance.f_facture";
     
     $resultat = mysql_query($requete) or die ('Erreur '.$requete.' '.mysql_error());
     
     $i = 0;
     
    $stock_date ="";
     
    $j = sizeof($resultat)
     
     	for ($i = 0; $i < $j; $i++) 
    		{
     
    	echo $i.'-'.$resultat[$i].'<br />';
     
    		}
    C'est a ce niveau que je bloque au niveau de l'affichage

    Je vous remerci de votre aide

    Runcafre91

  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
    La bonne facon de faire est dans le doc :
    http://php.net/manual/fr/function.mysql-fetch-assoc.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Si j'ai bien compris ta problematique je ferai quelque chose comme ca :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $resultat = mysql_query('SELECT * FROM facture INNER JOIN relance ON facture.f_facture=relance.f_facture');
     
    while($ligne = mysql_fetch_assoc($resultat)){
     
        $resultat2 = mysql_query('SELECT count(*) FROM relance WHERE f_facture=\''.$ligne['f_facture'].'\'');
     
        while($ligne2 = mysql_fetch_assoc($resultat2))
             $nb_relances = $ligne2['count(*)']; 
     
    echo 'la facture '.$ligne['f_facture'].' contient '.$nb_relances.'<br />';
     
    }

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Si j'ai bien compris ta problematique je ferai quelque chose comme ca :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $resultat = mysql_query('SELECT * FROM facture INNER JOIN relance ON facture.f_facture=relance.f_facture');
     
    while($ligne = mysql_fetch_assoc($resultat)){
     
        $resultat2 = mysql_query('SELECT count(*) FROM relance WHERE f_facture=\''.$ligne['f_facture'].'\'');
     
        while($ligne2 = mysql_fetch_assoc($resultat2))
             $nb_relances = $ligne2['count(*)']; 
     
    echo 'la facture '.$ligne['f_facture'].' contient '.$nb_relances.'<br />';
     
    }
    Bonsoir,

    Merci de votre réponse c'est en parti la solution a mon problème, ici j'ai le nombre de relance par facture, mais je souhait les affiché en ligne via un tableau et du coup une facture par ligne avec les relances concerné.

    C'est pour cela que je veux mettre en place une boucle qui dans un premir temps il me donne le nombre de relance par facture et dans un second temps je les affiche ligne par ligne avec les diférente date


    Runcafre91

  5. #5
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    il suffit alors de remplacer le count(*) par * et tu accèdes à tous tes champs. Qu'est ce qui te poses problème ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    il suffit alors de remplacer le count(*) par * et tu accèdes à tous tes champs. Qu'est ce qui te poses problème ?
    Bonjour,

    Ce que je cherche a faire c'est un tableau associatif (voir pièce joint) avec l'afichage de chaque facture en ligne avec les différentes date.
    Car dans m atable relance, la facture apparait plusieurs fois avec des dates différent, en faisant le count j'ai le nombre de date, en mettant en ligne je dois pouvoir visualiser ces trois dates

    Je ne sais pas trop si j'ai été précis

    Merci de votre aide

    Runcafre91

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

Discussions similaires

  1. besoin d'aide pour la création d'un requête
    Par fabien59420 dans le forum Requêtes et SQL.
    Réponses: 19
    Dernier message: 21/05/2008, 11h41
  2. besoin d'aide pour la création d'un logiciel
    Par lemoinedu49 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/12/2007, 06h21
  3. Réponses: 3
    Dernier message: 26/06/2007, 14h53
  4. Besoin d'aide pour un MCD des tables de la BDD
    Par nicaud dans le forum Schéma
    Réponses: 3
    Dernier message: 23/04/2006, 10h34
  5. Réponses: 2
    Dernier message: 10/03/2006, 13h55

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