[php/mysql] problème de requète

Résolu/Fermé
Dinheru Messages postés 1019 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 avril 2009 - 21 août 2008 à 13:39
Dinheru Messages postés 1019 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 avril 2009 - 21 août 2008 à 14:48
Bonjour,

Alors voilà j'ai un problème avec une requète sql dans mon code php :
<?
	$dateJour = date("Y-m-d");
	$moy = 0;
	$nb = 0;
	
	if($niveau >= 2) $conditionService = "";
	else $conditionService = "AND p.idService = $id ";
	
	$query = "Select count(*) 
                          from patient 
                          where actif = 0 and (dateTransport = '$dateJour' OR dateSaisie = '$dateJour')
                          ".$conditionService."";
	$travailBD = new travailBD();
	$result = $travailBD->executerRequete($query);	
	$row = mysql_fetch_row($result);
	$nbTransAcq = $row[0];
	
	$query = "Select count(*) 
                          from patient 
                          where actif = 1 and (dateTransport = '$dateJour' OR dateSaisie = '$dateJour')
                          ".$conditionService."";
	$travailBD = new travailBD();
	$result = $travailBD->executerRequete($query);	
	$row = mysql_fetch_row($result);
	$nbTransNonAcq = $row[0];
	
	$query = "Select datesaisie,heuresaisie,dateappel,heureappel
				From patient p inner join journal j
				On p.idpatient = j.idpatient
				Where (p.dateTransport = '$dateJour' OR p.dateSaisie = '$dateJour') $conditionService
				And j.action = \"Mission acquitée\" ";
	echo $query."<br>";
	$travailBD = new travailBD();
	$result = $travailBD->executerRequete($query);
	while ($row = mysql_fetch_row($result))
	{
		$dateSaisie = $row[0];
		$heureSaisie = $row[1];
		$dateAppel = $row[2];
		$heureAppel = $row[3];
		echo "$dateSaisie $heureSaisie|$dateAppel $heureAppel";
		$nb = $nb + 1;
		
		$date1 = "$dateSaise $heureSaisie";
		$date2 = "$dateAppel $heureAppel";

		date_to_timestamp($date1);
		date_to_timestamp($date2);

		$moy = $moy + ( date_diff($date2,$date1) / 60 );
	}
?>

Les deux premières requètes s'exécutent sans problème, c'est la troisième qui bloque. Comme je l'affiche, je l'ai copié et exécuté sous phpMyAdmin et là j'ai des résultats, mais dans mon code ma variable $row est null.
La requète qui s'affiche :
Select datesaisie,heuresaisie,dateappel,heureappel
   From patient p inner join journal j 
   On p.idpatient = j.idpatient 
   Where (p.dateTransport = '2008-08-21' OR p.dateSaisie = '2008-08-21')
   And j.action = "Mission acquitée" 

Si vous voyez d'où peut venir ce problème, ça m'aiderais beaucoup.
Merci d'avance.

3 réponses

Dinheru Messages postés 1019 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 avril 2009 67
21 août 2008 à 14:48
Re,

C'est bon j'ai trouvé l'erreur : un problème d'accent...
Il fallait que je fasse un utf8_decode() de ma requète pour que ça marche.
Merci quand même d'avoir porté attention à mon problème.
1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 août 2008 à 14:22
Et pourquoi pas comme ça:

$query = "Select datesaisie,heuresaisie,dateappel,heureappel
				From patient p inner join journal j
				On p.idpatient = j.idpatient
				Where (p.dateTransport = '$dateJour' OR p.dateSaisie = '$dateJour') $conditionService
				And j.action = 'Mission acquitée' ";


et que viens faire $conditionService tout seul sans test ?
-1
Dinheru Messages postés 1019 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 avril 2009 67
21 août 2008 à 14:29
Bonjour,

J'avais déjà essayer, ça change rien...
J'ai changer mon code, et mainteant j'ai la confirmation ma varaible $row est null
$query = "Select datesaisie,heuresaisie,dateappel,heureappel
				From patient p inner join journal j
				On p.idpatient = j.idpatient
				Where (p.dateTransport = '$dateJour' OR p.dateSaisie = '$dateJour') $conditionService
				And j.action = 'Mission acquitée' ";
	echo $query."<br>";
	$travailBD = new travailBD();
	$result = $travailBD->executerRequete($query);
	if($result == null) echo "Result null";
	$row = mysql_fetch_row($result);
	if($row == null) echo "Row null";

Là ça affiche "Row null", et je vois pas pourquoi parce que la requète devrait renvoyer des résultats.
-1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 août 2008 à 14:33
Plus haut dans ton code tu as:

$conditionService = "AND p.idService = $id "

il faudrait:
$conditionService = "AND p.idService = '$id' "
-1