Page 1 sur 1

probleme sur requette de controle

Posté : 12 avr. 2006, 11:05
par MICKA
voila j'ai une requete qui doit controlet 3 parametres

1 :numero du portable $_session['portable']
2 :$date_resa
3 :id_status.

si mes trois conditions sont remplie dans la base je recoi un message d'erreru or le prossecus continu sans qu'il y et d'erreur.
pourtant , je ne vois rien de flagran dans ma requete.
pouvez vous uy jetter un oeil svp.
if($_SESSION['portable'] !="")
	{
	$requete11 = "SELECT num_portable,date,id_status
					FROM detail WHERE num_portable = '".$_SESSION['portable']."' AND ( date = ".$date_resa." AND id_status = 2 ) ";
	$resultat11 = mysql_db_query('base_portable',$requete11, $connexion) or die('Erreur de selection '.mysql_error()); // execution de la requete
	
				if (mysql_num_rows($resultat11)==1) 
    		{ 
        $msg_erreur = urlencode("le portable ".$_SESSION['portable']." et deaja reserve pour le ".$date_resa." "); 
        echo "<script languague=\"javascript\">location.href='portable.php?error=".$msg_erreur."'</script>"; 
    		} 

}


Posté : 12 avr. 2006, 11:26
par Shenryu
Essaye en remplaçant ton if par :
if (mysql_num_rows($resultat11) > 0)
Il se peut que ton select trouve plusieurs résultats dans ta requête.

Posté : 12 avr. 2006, 11:30
par MICKA
pas de modif tout continu sans trouver d'errerurs.
j'ai verifier mon fichier de session contien bien le matricule.

Posté : 12 avr. 2006, 11:33
par Ryle
Fais déjà un echo de ta variable "$requete11" pour voir la requête qui est exécuté et joue la dans mySql ou phpMyAdmin pour voir s'il y a des résultats :)

(y a pas d'apostrophe autour de ton ".$date_resa.", ce n'est pas un champ date en base ?)

Sinon, sans résoudre le problème, mais pour simplifier ta requête, tu peux faire un simple SELECT count(*) FROM .. et directement vérifier si la valeur est différente de 0 (cela évite de ramener des infos pour rien)

Posté : 12 avr. 2006, 11:35
par Shenryu
Est-ce que tu as vérifié si le test passe ou non ?

Fais un echo "Hello World"; histoire qu'on voit si le test est true ou false. S'il est true, c'est que ton script javascript pose problème.

Au passage, la balise du script s'écrit : <script language = "javascript"> si je ne me trompe pas ;)

Edit : Ryle > A vi bien vu les quotes autour de la date ^^

Posté : 12 avr. 2006, 11:38
par Micka
la varible $date_resa remplie bien un champ date dans ma base effectivement.

Posté : 12 avr. 2006, 11:56
par Ryle
la varible $date_resa remplie bien un champ date dans ma base effectivement.
Et tu n'as pas d'erreur lors de l'exécution de la requête à cause du format de la date ? Essaies comme ceci :
$requete11 = "SELECT COUNT(*) AS nb 
   FROM detail 
   WHERE num_portable = '".$_SESSION['portable']."' 
   AND date = '".$date_resa."'
   AND id_status = 2"; 
// avec les quotes autour de ton $date_resa

$resultat11 = mysql_db_query('base_portable',$requete11, $connexion) 
   or die('Erreur de selection '.mysql_error()); // execution de la requete 

$row = mysql_fetch_assoc($resultat11);
if($row['nb']>0) {
  $msg_erreur = ...
}

Posté : 12 avr. 2006, 13:10
par Micka
ca passe merci.

peux tu m'expliquer ce qui foiré dans mon code ?

Posté : 12 avr. 2006, 15:59
par Micka
[RESOLU]
merci pour tout