Créer plusieurs SELECT pour faire des statistiques

msi079 Messages postés 212 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 25 juillet 2013 - 23 oct. 2011 à 13:59
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 29 oct. 2011 à 21:30
salut . le but de mon code est de faire des statistiques .
alors j'ai crée un code dans lequel figure plusieurs SELECT mais quand je lance rien ne s'affiche alors je suis la pour un coup de main. merci pour votre aide.
voici mon code php :


<?php


    $_POST["nom"]= "";       $_POST["cel"]="";
    $NOM=trim($_POST["nom"]);
;
$CEL=trim($_POST["cel"]);


$color=array('#333333','#999999');
$i=0;
            mysql_connect("localhost","root","") or die("erreur de connexion");
mysql_select_db("nosvictimes") or die("Erreur de selection de la BD");





// on crée la requête SQL
$sql = "SELECT DISTINCT a.nom 
          FROM  victime a,info b  
     WHERE a.matricule = b.id_info
  AND pkquitte = 'Insecurité..........1'
         ORDER BY nom ASC";
$sql2 = "SELECT DISTINCT a.nom 
          FROM  victime a,info b  
     WHERE a.matricule = b.id_info
  AND pkquitte = 'Habitat détruit.....2'
         ORDER BY nom ASC";
 $sql3 = "SELECT DISTINCT a.nom 
          FROM  victime a,info b  
     WHERE a.matricule = b.id_info
  AND pkquitte = 'Travail...............4'
         ORDER BY nom ASC";

 $sql4 = "SELECT DISTINCT a.nom 
          FROM  victime a,info b  
     WHERE a.matricule = b.id_info
  AND pkquitte = 'TParents décédés...8'
         ORDER BY nom ASC";
 $sql5 = "SELECT DISTINCT a.nom 
          FROM  victime a,info b  
     WHERE a.matricule = b.id_info
  AND pkquitte = 'Etude................9'
         ORDER BY nom ASC";
// on envoie la requête
$req1 = mysql_query($sql1) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$req2 = mysql_query($sql2) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$req3= mysql_query($sql3) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$req4 = mysql_query($sql4) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$req5 = mysql_query($sql5) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$res1 = mysql_num_rows($req1); 
$res2 = mysql_num_rows($req2);
$res3 = mysql_num_rows($req3);
$res4 = mysql_num_rows($req4);
$res5 = mysql_num_rows($req5);                              // 4 
echo 'Il y a  '.$res1.'   victimes qui ont un motif de retour ';
echo 'Il y a  '.$res2.'   victimes qui ont un motif de retour ';
echo 'Il y a  '.$res3.'   victimes qui ont un motif de retour ';
echo 'Il y a  '.$res4.'   victimes qui ont un motif de retour ';
echo 'Il y a  '.$res5.'   victimes qui ont un motif de retour ';

// Passons au calcul des pourcentages .

$nbre_total_victime = mysql_num_rows(mysql_query("SELECT * FROM victime ;"));
$nbre_sans_emploi1 =  mysql_num_rows(mysql_query($sql));
$nbre_sans_emploi2 =  mysql_num_rows(mysql_query($sql2));
$nbre_sans_emploi3 =  mysql_num_rows(mysql_query($sql3));
$nbre_sans_emploi4 =  mysql_num_rows(mysql_query($sql4));
$nbre_sans_emploi5 =  mysql_num_rows(mysql_query($sql5));
$pourcentage_sans_emploi1 = $nbre_sans_emploi1 * 100 /  $nbre_total_victime;
$pourcentage_sans_emploi2 = $nbre_sans_emploi2 * 100 /  $nbre_total_victime;
$pourcentage_sans_emploi3 = $nbre_sans_emploi3 * 100 /  $nbre_total_victime;
$pourcentage_sans_emploi4 = $nbre_sans_emploi4 * 100 /  $nbre_total_victime;
$pourcentage_sans_emploi5 = $nbre_sans_emploi5 * 100 /  $nbre_total_victime;

echo $nbre_total_victime .'est le nombre total de victime;';
echo ' Ce qui nous donne un pourcentage de :'.$pourcentage_sans_emploi1.' % pour les  victimes acecmotif de retour'
echo ' Ce qui nous donne un pourcentage de :'.$pourcentage_sans_emploi2.' % pour les  victimes acecmotif de retour'
echo ' Ce qui nous donne un pourcentage de :'.$pourcentage_sans_emploi3.' % pour les  victimes acecmotif de retour'
echo ' Ce qui nous donne un pourcentage de :'.$pourcentage_sans_emploi4.' % pour les  victimes acecmotif de retour'
echo ' Ce qui nous donne un pourcentage de :'.$pourcentage_sans_emploi5.' % pour les  victimes acecmotif de retour'
?> 





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style3 {color: #FFFFFF}
.Style4 {color: #FFFFFF; font-weight: bold; }
.Style6 {
color: #0000FF;
font-style: italic;
font-weight: bold;
}
-->
</style>
</head>





  >>> LISTE DES VICTIMES DE GUERRE ET MES MOTIFS EN COTE D'IVOIRE <<<  



 


 Accueil  |
RECHERCHE,

----

NOM ET PRENOM  |
CEL,

<?php
while ($liste_etu =mysql_fetch_assoc($req)) {
$j=$i%2;

?>
----

<?php echo $liste_etu['nom'] ?>,
<?php echo $liste_etu['cel'] ?>,

<?php
}
?>


</html>

14 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
23 oct. 2011 à 14:27
Bonjour,

Dans ce cas, il faut commencer par vérifier si en passant par PHPMyAdmin, tu arrives à avoir le résultat désiré.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
msi079 Messages postés 212 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 25 juillet 2013
23 oct. 2011 à 15:22
je suis pas la. comment passer par PHPMyAdmin pour vérifier . guide moi s'il te plait
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
23 oct. 2011 à 16:21
Bonjour,

PHPMyAdmin te permet de gérer ta base de données plus facilement.
Il faut sélectionner la base de données.
Ensuite, tu cliques sur l'onglet SQL et écris ta requête.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
24 oct. 2011 à 09:22
Moi je dis qu'une gestion des erreurs avec des exceptions s'impose.. Et puis c'est la base de la programmation, tu n'en sortiras que plus intelligent..
Et comme tes requetes sont identiques hormis un filtre, fais une boucle..ça sera source d'erreur en moins.
S.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
msi079 Messages postés 212 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 25 juillet 2013
24 oct. 2011 à 09:29
c'est quel boucle je peux utiliser ici . je suis débutant essai de me mètre pas à pas sur la voi
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
24 oct. 2011 à 22:41
Bonjour,

Regardes le fonctions :
mysql_fetch_*
http://www.php.net/manual/fr/function.mysql-fetch-array.php

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
msi079 Messages postés 212 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 25 juillet 2013
24 oct. 2011 à 22:59
je vois pad de cas qui traite plusieurs requète select comme dans mon cas
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
25 oct. 2011 à 20:43
Bonjour,

Il faut considérer chaque requête comme seule, ensuite, c'est juste le descripteur de ressource qui change.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
msi079 Messages postés 212 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 25 juillet 2013
26 oct. 2011 à 10:45
merci de vouloir bien m'aider . j'ai procédé autrement vu que j’étais pris par le temps .j'ai fait un fichier pour chaque SELECT . ça m'a pris le temps mais j'ai le résultat .
j'ai un autre soucis . c'est au niveau de jpgraph je sais pas si vous maitriser jpgraph si ou je vais poster mon probleme.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
26 oct. 2011 à 12:47
Bonjour,

Je n'ai jamais utilisé ni eu besoin de jpgraph, dsl.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
msi079 Messages postés 212 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 25 juillet 2013
28 oct. 2011 à 11:05
salut j'ai cru avoir trouvé une solution aux requêtes multiples dans un fichier php mais voila que j'ai encore besoin de ça.
le problème est que ça ne m'affiche rien en plus je vois pas d'erreur ue je dois corriger.
merci de bien vouloir m'aider.

<?php


    $_POST["nom"]= "";       $_POST["cel"]="";
    $NOM=trim($_POST["nom"]);

$CEL=trim($_POST["cel"]);


$color=array('#333333','#999999');
$i=0;
              //On se connecte à la base de donnée  
           include("connection.php");
// on crée la requête SQL
$sql1 = "SELECT DISTINCT a.nom 
          FROM  victime a,info b  
     WHERE a.matricule = b.id_info
  AND pkquitte = 'Insecurité..........1'
         ORDER BY nom ASC";
 // on envoie la requête
$req1 = mysql_query($sql1) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
 $res1 = mysql_num_rows($req1);
echo 'Il y a  '.$res1.'   victimes qui ont un motif de retour ';

if($res1){
$sql2 = "SELECT DISTINCT a.nom 
           FROM  victime a,info b  
     WHERE a.matricule = b.id_info
  AND pkquitte = 'Habitat détruit.....2'
         ORDER BY nom ASC";
$req2 = mysql_query($sql2) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$res2 = mysql_num_rows($req2);
echo 'Il y a  '.$res2.'   victimes qui ont un motif de retour ';
}else 

if($res2){
 $sql3 = "SELECT DISTINCT a.nom 
           FROM  victime a,info b  
     WHERE a.matricule = b.id_info
  AND pkquitte = 'Travail...............4'
         ORDER BY nom ASC";
$req3= mysql_query($sql3) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$req3 = mysql_query($sql3) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
echo 'Il y a  '.$res3.'   victimes qui ont un motif de retour ';
}else 
if($res3){
 $sql4 = "SELECT DISTINCT a.nom 
          FROM  victime a,info b  
     WHERE a.matricule = b.id_info
  AND pkquitte = 'Parents décédés...8'
         ORDER BY nom ASC";
$req4 = mysql_query($sql4) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$res4 = mysql_num_rows($req4);
}else 
if($res4){
$sql5 = "SELECT DISTINCT a.nom 
          FROM  victime a,info b  
     WHERE a.matricule = b.id_info
  AND pkquitte = 'Etude................9'
         ORDER BY nom ASC";
$req5 = mysql_query($sql5) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$res5 = mysql_num_rows($req5);                              // 4 
echo 'Il y a  '.$res5.'   victimes qui ont un motif de retour ';
}else 
if($res5){
// Passons au calcul des pourcentages .

$nbre_total_victime = mysql_num_rows(mysql_query("SELECT * FROM victime ;"));
$nbre_sans_emploi1 =  mysql_num_rows(mysql_query($sql));
$nbre_sans_emploi2 =  mysql_num_rows(mysql_query($sql2));
$nbre_sans_emploi3 =  mysql_num_rows(mysql_query($sql3));
$nbre_sans_emploi4 =  mysql_num_rows(mysql_query($sql4));
$nbre_sans_emploi5 =  mysql_num_rows(mysql_query($sql5));
$pourcentage_sans_emploi1 = $nbre_sans_emploi1 * 100 /  $nbre_total_victime;
$pourcentage_sans_emploi2 = $nbre_sans_emploi2 * 100 /  $nbre_total_victime;
$pourcentage_sans_emploi3 = $nbre_sans_emploi3 * 100 /  $nbre_total_victime;
$pourcentage_sans_emploi4 = $nbre_sans_emploi4 * 100 /  $nbre_total_victime;
$pourcentage_sans_emploi5 = $nbre_sans_emploi5 * 100 /  $nbre_total_victime;

echo $nbre_total_victime .'est le nombre total de victime;';
echo ' Ce qui nous donne un pourcentage de :'.$pourcentage_sans_emploi1.' % pour les  victimes acecmotif de retour'
echo ' Ce qui nous donne un pourcentage de :'.$pourcentage_sans_emploi2.' % pour les  victimes acecmotif de retour'
echo ' Ce qui nous donne un pourcentage de :'.$pourcentage_sans_emploi3.' % pour les  victimes acecmotif de retour'
echo ' Ce qui nous donne un pourcentage de :'.$pourcentage_sans_emploi4.' % pour les  victimes acecmotif de retour'
echo ' Ce qui nous donne un pourcentage de :'.$pourcentage_sans_emploi5.' % pour les  victimes acecmotif de retour'
}

?> 





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style3 {color: #FFFFFF}
.Style4 {color: #FFFFFF; font-weight: bold; }
.Style6 {
color: #0000FF;
font-style: italic;
font-weight: bold;
}
-->
</style>
</head>





  >>> LISTE DES VICTIMES DE GUERRE ET MES MOTIFS EN COTE D'IVOIRE <<<  



 


 Accueil  |
RECHERCHE,

----

NOM ET PRENOM  |
CEL,

<?php
while ($liste_etu =mysql_fetch_assoc($req)) {
$j=$i%2;

?>
----

<?php echo $liste_etu['nom'] ?>,
<?php echo $liste_etu['cel'] ?>,

<?php
}
?>


</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>



</html>
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
28 oct. 2011 à 21:49
Bonjour,

Tu as une petite erreur pour la requête 3, je pense :
$req3= mysql_query($sql3) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$req3 = mysql_query($sql3) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
... mais pas de comptage de ligne.

Sinon, ton code réindenté (d'où l'utilité de la chose), je suppose que tu verras ton erreur :
<?php
$res1 = ...
if($res1){
...
$res2 = ...
}else 
if($res2){
$req3 = ...
}else 
if($res3){
$res4 = ...
}else 
if($res4){
$res5 = ...
}else 
if($res5){
...
?>


Je te laisse comprendre ton erreur.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
msi079 Messages postés 212 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 25 juillet 2013
29 oct. 2011 à 08:56
bonjour .merci j'ai vu cette erreur .mais toujous voici ce qui m'affiche le navigateur :

Le site Web a rencontré une erreur lors de l'extraction de http://localhost/INSCRIPTION/testReqMultiple.php. Cela peut être dû à une opération de maintenance ou à une configuration incorrecte.
et voici le code corrigé :


<?php
    $_POST["nom1"]= "";       
    $nom1=trim($_POST["nom1"]);

$color=array('#333333','#999999');
$i=0;
        //On se connecte à la base de donnée  
           include("connection.php");
// on crée la requête SQL
$sql = "SELECT nom1 FROM enfant
          WHERE  religion1 = 'musulman......3'
   AND lien1 = 'CM/PE.....1'
    AND lesite = 'EGLISE CELESTE'
        ORDER BY nom1 ASC";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$res = mysql_num_rows($req);                               // 4 
echo 'Il y a '.$res.' victimes musulman vivant sur le site EGLISE CELESTE.';

// Passons au calcul des pourcentages .

$nbre_total_victime mysql_num_rows(mysql_query("SELECT * FROM enfant WHERE lien1 'CM/PE.....1'  AND lesite = 'EGLISE CELESTE';"));
$nbre_sans_emploi =  mysql_num_rows(mysql_query($sql));
$pourcentage_sans_emploi = $nbre_sans_emploi * 100 /  $nbre_total_victime;

echo $nbre_total_victime .'est le nombre total de victimes;';
echo ' Ce qui nous donne un pourcentage de :'.$pourcentage_sans_emploi.' % des victimes musulman vivant sur le site EGLISE CELESTE.';

?> 




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style3 {color: #FFFFFF}
.Style6 {
color: #0000FF;
font-style: italic;
font-weight: bold;
}
-->
</style>
</head>





  >>> LISTE DES  VICTIMES DE GUERRE CATHOLIQUE<<<  



 


 Accueil  |
RECHERCHE,

----

NOM ET PRENOMS  |

<?php
while ($liste_etu =mysql_fetch_assoc($req)) {
$j=$i%2;

?>

----

<?php echo $liste_etu['nom1'] ?>,
,

<?php
}
?>




</html>


0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 oct. 2011 à 21:30
Bonjour,

Tu es bien sûr que tout ton code ?
As-tu tenté de commenter tout ton code, puis de mettre ton code petit à petit pour voir à partir de quel miment ça pose pb.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Rejoignez-nous