Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/12/2011, 16h47   #1
Invité de passage
 
Femme
Inscription : novembre 2011
Messages : 26
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : novembre 2011
Messages : 26
Points : 0
Points : 0
Par défaut Pb extraction des données de la BD

Bonjour tout le monde,
J'ai un pb concernant l'extraction de données depuis la base de données vers un tableau à afficher dans ma page php en utilisant la fonction Count:

Voilà un bout de code pour avoir une idée:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
 
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("alu"); // Sélection de la base 
$statut_demande="En cours";
$reponse = mysql_query("SELECT nom_projet FROM projet")or die( mysql_error() );
 
echo "<table width=\"435\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
 
  echo "<tr>
    <td height=\"22\">&nbsp;</td>
	<td valign=\"top\" bgcolor=\"#6699FF\"><b>Nom projet</b>&nbsp;</td>
    <td>&nbsp;</td>
	<td valign=\"top\" bgcolor=\"#6699FF\"><b>Nombre de demandes</b>&nbsp;</td>//nbre demandes dans un projet
    <td>&nbsp;</td>
    <td valign=\"top\" bgcolor=\"#6699FF\"><b>Demandes en cours</b>&nbsp;</td>//nbre demandes en cours dans un projet
    <td>&nbsp;</td>
  </tr>";
?>
j'ai pensé à executer ces requetes:


Code :
1
2
3
4
 //selectionne le nombre de demandes en cours
  $reponse2 = mysql_query("SELECT COUNT(*) FROM demande,demande_projet,projet WHERE demande.id_demande=demande_projet.id_demande AND projet.id_projet=demande_projet.id_projet AND demande.statut_demande='".$statut_demande."'")or die( mysql_error() );
  //selectionne le nombre de demandes
  $reponse1 = mysql_query("SELECT COUNT(*)FROM demande,demande_projet,projet WHERE demande.id_demande=demande_projet.id_demande AND projet.id_projet=demande_projet.id_projet")or die( mysql_error() );
Je veux accomplir ce bout de code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
while ($donnees = mysql_fetch_array($reponse) and ?)
{
 
echo '<td height="22">&nbsp;</td>
    <td valign="top">'.$donnees['nom_projet'].'&nbsp;</td>
    <td>&nbsp;</td>
    <td valign="top">'.?.'&nbsp;</td>
    <td>&nbsp;</td>
    <td valign="top">'.?.'&nbsp;</td>
    <td>&nbsp;</td>
 
  </tr>';
 
}
 echo "</table>";
mysql_close(); // Déconnexion de MySQL
 ?>
Je veux aussi savoir est ce qu'il faut ajouter aussi dans les deux requetes une clause WHERE nom_projet="variable nom de projet" pour savoir pour quel projet il faut afficher le nbre de demandes... si c'est le cas comment faire ça
Merci d'avance
angelina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 18h04   #2
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
Bonsoir,

Je ne me souviens plus trop de la syntaxe littérale pour récupéré la valeur d'un count. Par contre tu peux utiliser le mode numérique sans problème :
$donnees[0]
Citation:
Envoyé par angelina88
Je veux aussi savoir est ce qu'il faut ajouter aussi dans les deux requetes une clause WHERE nom_projet="variable nom de projet" pour savoir pour quel projet il faut afficher le nbre de demandes... si c'est le cas comment faire ça
La je ne comprend pas très bien ...
Si tu as déjà le nom du projet alors oui tu peux faire une clause WHERE nom_projet = "variable nom projet", mais ce serrait beaucoup plus propre avec un id.
humitake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 01h20   #3
Invité de passage
 
Femme
Inscription : novembre 2011
Messages : 26
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : novembre 2011
Messages : 26
Points : 0
Points : 0
Oui mais le nom du projet je vais l'avoir que dans le While après la déclaration des deux requêtes !! Pour éclaircir les choses les trois bout de codes font partie d'une même page php
Et pour "$donnees[0] c'est la même $donnees["nom_projet"] "

Merci pour votre reponse ^^
angelina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 08h56   #4
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 711
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 711
Points : 328
Points : 328
Je propose 2 tables :
  • projets (id_projet, nom_projet)
  • demandes (id_demande, projet_id, statut)

Et puis cette requête :
Code :
1
2
3
4
5
 
SELECT p.nom_projet as projet, COUNT(d.id_demande) as nb_demandes, COUNT(d2.id_demande) as nb_deamndes_encours FROM projets p
INNER JOIN demandes d ON d.projet_id = p.id_projet
INNER JOIN demandes d2 ON d2.projet_id = p.id_projet AND d2.statut = '.$statut_demande.'
GROUP BY COUNT(d.id_demande), COUNT(d2.id_demande)
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 09h02   #5
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 711
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 711
Points : 328
Points : 328
et récupération :
Code :
1
2
3
4
5
 
while ($donnees = mysql_fetch_array($reponse))
{
	echo $donnees['projet'] . ' - ' . $donnees['nb_demandes'] . ' - ' . $donnees['nb_deamndes_encours'] . '<br />';
}
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2011, 02h03   #6
Invité de passage
 
Femme
Inscription : novembre 2011
Messages : 26
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : novembre 2011
Messages : 26
Points : 0
Points : 0
Mercii bcp okoweb pour ton aide
Dans mon cas j'ai trois tables
projet, demande et demande_projet (où il y a les deux clés etrangères et un autre attribut), et voilà ci-dessous le code que j'ai executé mais le problème c'est que j'obtiens comme résultat une seule ligne :/
Code :
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
 
<?php
 
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("alu"); // Sélection de la base 
$statut_demande="En cours";
 
 
$reponse=mysql_query("SELECT d.nom_projet as nom_projet, COUNT(d1.id_demande) as nb_demandes, COUNT(d2.id_demande) as nb_deamndes_encours FROM demande_projet d1 
INNER JOIN projet d ON d.id_projet = d1.id_projet
INNER JOIN demande d2 ON d2.id_demande = d1.id_demande AND d2.statut_demande = '".$statut_demande."'
GROUP BY d.nom_projet")or die( mysql_error() );
 
echo "<table width=\"435\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
 
  echo "<tr>
    <td height=\"22\">&nbsp;</td>
	<td valign=\"top\" bgcolor=\"#6699FF\"><b>Nom projet</b>&nbsp;</td>
    <td>&nbsp;</td>
	<td valign=\"top\" bgcolor=\"#6699FF\"><b>Nombre de demandes</b>&nbsp;</td>
    <td>&nbsp;</td>
    <td valign=\"top\" bgcolor=\"#6699FF\"><b>Demandes en cours</b>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>";
 
while ($donnees = mysql_fetch_array($reponse))
{
 
 
echo '<td height="22">&nbsp;</td>
    <td valign="top">'.$donnees['nom_projet'].'&nbsp;</td>
    <td>&nbsp;</td>
    <td valign="top">'.$donnees['nb_demandes'].'&nbsp;</td>
    <td>&nbsp;</td>
    <td valign="top">'.$donnees['nb_deamndes_encours'].'&nbsp;</td>
    <td>&nbsp;</td>
 
  </tr>';
 
 
}
 echo "</table>";
mysql_close(); // Déconnexion de MySQL
 ?>
angelina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h17.


 
 
 
 
Partenaires

Hébergement Web