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 :

Comment afficher le résultat d'un calcul recursif de sql sur une page php?


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 10
    Par défaut Comment afficher le résultat d'un calcul recursif de sql sur une page php?
    Bonjour,
    Je suis novice en php/mysql. J'ai, grâce à des personnes généreuses sur le forum mysql de ce site, pu effectuer une procédure recursive sur ma table mysql dans le calcul des filleuls, dans un système de parrainage. Mon problème maintenant est d'afficher le résultat du calcul sur la page de profil d'un membre. Je vous présente la table et la procédure recursive. Mon souci est d'afficher le nombre correspondant à l'id au profil approprié. Merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CREATE TABLE `membres` (
      `id` int(11) NOT NULL,
      `identite` varchar(255) NOT NULL,
      `idparrain` int(11) NOT NULL,
      `telephone` varchar(255) NOT NULL,
      `mail` varchar(255) NOT NULL,
      `province` varchar(255) NOT NULL,
      `vdd` varchar(255) NOT NULL,
      `ddd` date NOT NULL,
      `mdt` varchar(255) NOT NULL,
      `mdp` varchar(255) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    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
     
    INSERT INTO `membres` (`id`, `identite`, `idparrain`, `telephone`, `mail`, `province`, `vdd`, `ddd`, `mdt`, `mdp`) VALUES
    (7, 'Georges', 2, '(+243)903452198', 'georges@yahoo.fr', 'Kongo Central', '100$', '2018-07-19', 'Mpesa', '2453f80431877254016377c5e36e49046aec3d80'),
    (8, 'Sevi Vingu', 7, '(+243)978374637', 'sevi@tozaa.net', 'Kinshasa', '100$', '2018-07-12', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
    (9, 'Alex', 7, '(+243)821307485', 'alex@voila.fr', 'Equateur', '10$', '2018-07-12', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
    (10, 'Bob', 7, '(+243)814658204', 'bob@voici.fr', 'Kasai Oriental', '10$', '2018-07-28', 'Orange Money', '2453f80431877254016377c5e36e49046aec3d80'),
    (11, 'Annie', 7, '(+243)907070443', 'annie@caramail.com', 'Kinshasa', '100$', '2018-07-04', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
    (12, 'Dwayne', 0, '(+243)837028746', 'dwayne@yahoo.fr', 'Equateur', '10$', '2018-07-27', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
    (14, 'Patrick Bitafu Sabu', 27, '00822156182', 'patrickbibu@gmail.com', 'Kinshasa', '1000', '2018-07-22', 'Mpesa', 'ffd6c8edba114c86c1130600feac0e3eb11d5661'),
    (15, 'Mbuyi kaba', 14, '(+243)821307485', 'aaron@yahoo.fr', 'Kinshasa', '1000', '2018-07-21', 'Mpesa', 'c60a535544b1c1fcf05fab35d7f33aa8dbcd0cb3'),
    (16, 'Korzo Barni Clavis', 15, '+44512223489', 'lixcor@gmail.com', 'Kinshasa', '1000', '2018-07-22', 'Mpesa', '549a53d9060d1e3bd995a8d7a9ed451dbed90c71'),
    (17, 'Korzo Barni Vilenia', 14, '+44512223489', 'lixcordabi@gmail.com', 'Kinshasa', '1000', '2018-07-22', 'Airtel Money', 'fea4e1eb91d28b1544a362c085c3e9d2fb4273d1'),
    (18, 'Malik', 8, '08114278309', 'malik@gmail.com', 'Kinshasa', '10$', '2018-09-09', 'Mpesa', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
    (19, 'Hussein', 18, '0972123456', 'hussein@gmail.com', 'Equateur', '10$', '2018-09-10', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
    (20, 'Hassan', 18, '0986543456', 'hassan@gmail.com', 'Province Orientale', '10$', '2018-09-11', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
    (21, 'Ahmed', 19, '0825647389', 'ahmed@gmail.com', 'Nord Kivu', '10$', '2018-09-12', 'Orange Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
    (22, 'Andrew', 19, '0374976372', 'andrew@gmail.com', 'Bandundu', '10$', '2018-09-05', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
    (23, 'Talent', 18, '0938403647', 'talent@gmail.com', 'Kongo Central', '10$', '2018-09-05', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
    (24, 'Pedro', 19, '03849393847', 'pedro@gmail.com', 'Kongo Central', '10$', '2018-09-06', 'Mpesa', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
    (25, 'Vingu', 18, '78909', 'vingu@gmail.com', 'Bandundu', '10$', '2018-09-20', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
    (26, 'ngoma', 18, '93038', 'ngoma@gmail.com', 'Kasai Occidental', '10$', '2018-09-21', 'Orange Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
    (27, 'Lea', 18, '2930', 'lea@gmail.com', 'Province Orientale', '10$', '2018-09-20', 'Orange Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80');
    Puis le calcul recursif

    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
     
    with recursive cte (`id`, `idparrain`, `nbre`) as
      (  select  id,
                 idparrain,
                 0 as nbre
           from  `membre`
      union all
         select  m.id,
                 m.idparrain,
                 1 as nbre
           from  `membre` as m
     inner join  cte
             on  m.id=cte.idparrain
      )
         select  id, sum(nbre) as qte
           from  cte
       group by  id
    --------------
     
    +------+------+
    | id   | qte  |
    +------+------+
    |    7 |   18 |
    |    8 |   14 |
    |    9 |    0 |
    |   10 |    0 |
    |   11 |    0 |
    |   12 |    0 |
    |   14 |    3 |
    |   15 |    1 |
    |   16 |    0 |
    |   17 |    0 |
    |   18 |   13 |
    |   19 |    3 |
    |   20 |    0 |
    |   21 |    0 |
    |   22 |    0 |
    |   23 |    0 |
    |   24 |    0 |
    |   25 |    0 |
    |   26 |    0 |
    |   27 |    4 |
    +------+------+
    Bref, j'aimerai afficher la qte sur le profil php de l'id correspondant. Merci.

  2. #2
    Membre confirmé Avatar de Hadock
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 52
    Par défaut
    Bonjour, je ne suis pas le plus calé en php (et j’espère avoir compris ta question ^^) mais c'est pas ça que tu cherche :

    Exemple :
    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
    <?php
    		// on se connecte à la base de données
    		include 'bdd_co.php';
     
    		//On récupére le résultat dans l'objet $Rquery
    		$Rquery = $DBconnect->query('SELECT CT.id, CT.titre, CT.image, CA.lab_categorie, CT.date_crea, CT.statut 
    					FROM CONTENT CT
    					INNER JOIN CATEGORIE CA
    					ON CA.id_categorie = CT.id_categorie
    					WHERE CT.id IN (SELECT MAX(id) FROM CONTENT WHERE statut = 1)
    					AND CT.statut = 1
    					ORDER BY CT.id DESC');
     
    		//on affiche les résultats
    		while ($show = $Rquery->fetch()) {
    			echo '<div class="col s12 l12">
    				<a href="'.OptimiseUrl($show['titre']).'-'.$show['id'].'">
    					<ul class="collection s12 m6 l6">
    						<li class="collection-item avatar">
    							<img src="img/'.$show['image'].'" alt="image de la catégorie '.$show['lab_categorie'].'" class="circle">
    							<span class="title truncate">'.$show['titre'].'</span>
    							<p>['.$show['lab_categorie'].']<br>
    								'.$show['date_crea'].'
    							</p>
    
    							<span class="badge secondary-content amber-text-modif valign-wrapper hide-on-med-and-down">
    								<i class="material-icons">new_releases</i>
    								  NEW POST
    							</span>
    						</li>
    					</ul>
    				</a>
    			</div>';
    		}
    		// Termine le traitement de la requête
    		$Rquery->closeCursor(); 
    		?>

Discussions similaires

  1. Afficher le résultat d'un calcul "fait en VBA" dans une cellule
    Par Bercud dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/09/2018, 12h22
  2. Comment ouvrir un document msoffice sur une page PHP ?
    Par sequadio dans le forum Langage
    Réponses: 3
    Dernier message: 29/10/2007, 17h40
  3. Réponses: 12
    Dernier message: 27/08/2007, 12h33
  4. Calcul temps passé sur une page PHP pur
    Par mathieugamin dans le forum Langage
    Réponses: 10
    Dernier message: 29/03/2007, 17h22
  5. Afficher un calendrier sur une page php
    Par griese dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 12/06/2006, 09h53

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