[résolu]Problème de requête.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [résolu]Problème de requête.

Re: Problème de requête.

par ladinho58 » 30 janv. 2012, 15:19

Ma requête a un peu avancé.

J'ai désormais écrit ceci :
$essai= ' SELECT id_utilisateur FROM utilisateur WHERE id_region='.$_SESSION['id_region'].' ';
$essai_=mysql_query($essai) or die('Requête invalide : ' . mysql_error() . "\n" . 'Requête complète : ' . $essai);
while($_essai_ = mysql_fetch_row($essai_, MYSQL_ASSOC))
{
	$user.=" id_utilisateur = '".$_essai_['id_utilisateur']."' ";
	$nb_membre--; //nb_membre est le nombre de membres associés à la région.
	if($nb_membre!='0')
	$user.="AND ";
}
Si le fais un echo de $user, j'obtiens ceci :
id_utilisateur = '7' AND id_utilisateur = '20'
donc parfaitement normal puisque la région comprend 2 utilisateurs. Malgré tout, le graf ne s'affiche toujours pas.

[résolu]Problème de requête.

par ladinho58 » 30 janv. 2012, 12:21

Bonjour,

je vous sollicite car une de mes requêtes ne fait pas ce que je souhaiterai.
En gros, mon objectif est de réaliser un histogramme montrant un nombre d'affaires traitées par la région de l'utilisateur.

J'arrive a générer l'histogramme "personnel" de l'utilisateur, c'est-à-dire qu'il peut voir le nombre d'affaires qu'il a traité les 12 derniers mois, mais je n'arrive pas à voir la somme des affaires traitées par les utilisateurs issus de la même région.

Voici pour le moment mon code qui traite ces cas :
if(isset($_GET['self'])) //affiche les affaires de l'utilisateur actuel
{
	$user .= " id_utilisateur = '".$_SESSION['id_user']."' ";
}
elseif(isset($_GET['user'])){
		if(($_GET['user'] == $_SESSION['id_user']) || $_SESSION['droits']==0) // affiche les affaires d'un utilisateur quelconque pourvu qu'on fournisse son id
			$user .= " id_utilisateur = '".$_GET['user']."' ";
		if($_GET['user'] == 'all') //censé afficher les affaires des individus issus de la même région que l'utilisateur
			$user.= " id_utilisateur = ' SELECT id_utilisateur FROM utilisateur WHERE id_region='".$_SESSION['id_region']."' ' ";
}
Et voici la construction de la requête :
$req = "SELECT COUNT(*) as nbrapport, MONTH(date) as mois FROM affaire ";
$where="WHERE ";
if($user!="")
	$where.=$user;
if($where != "WHERE ")
$req.=$where;
$req.=" GROUP BY YEAR(date), MONTH(date) ORDER BY date DESC LIMIT ".$periode;
//echo $req;
$query = mysql_query($req) or die('Requête invalide : ' . mysql_error() . "\n" . 'Requête complète : ' . $req);
Et en gros, le message qui m'est affiché est le suivant :

Statistiques équipe

Autrement dit, mon graphe ne s'affiche pas puisque pour afficher le graphe, j'écris cette ligne :
<div style="text-align:center"><img src="statistique/user_activity.php?user=all&periode=12" alt="Statistiques équipe"></div>
Et si jamais j'écris ceci, un graphe s'affiche avec tous les utilisateurs enregistrés, c'est-à-dire que ma demande d'affichage des affaires régionales n'est pas pris en compte :
<div style="text-align:center"><img src="statistique/user_activity.php?all=&periode=12" alt="Statistiques équipe"></div>
Merci d'avance pour votre aide