Créer plusieurs SELECT pour faire des statistiques

Signaler
Messages postés
229
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
25 juillet 2013
-
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
-
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

Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
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
Messages postés
229
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
25 juillet 2013

je suis pas la. comment passer par PHPMyAdmin pour vérifier . guide moi s'il te plait
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
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
Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
18
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.
Messages postés
229
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
25 juillet 2013

c'est quel boucle je peux utiliser ici . je suis débutant essai de me mètre pas à pas sur la voi
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
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
Messages postés
229
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
25 juillet 2013

je vois pad de cas qui traite plusieurs requète select comme dans mon cas
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
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
Messages postés
229
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
25 juillet 2013

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.
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
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
Messages postés
229
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
25 juillet 2013

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>
Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
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
Messages postés
229
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
25 juillet 2013

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>


Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
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