Problème d'imbrication if pour ma requete

Résolu
sinifer Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

j'ai un problème avec ce code je vois pas l'erreur??
J'esseil de récupérer une date et avec cette date j'affiche les différent éléments dont j'ai besoin mais sa marche pas :( si vous pouvez me donner votre avis ce serait gentille merci car j'arrive pas a trouvé mon erreur je pense que j'ai du fair une erreur dans le if??

if (isset($date_du) && isset($date_au)) {
		
		$query_vg = mysql_query("SELECT IF(customers_from LIKE '1st%','1rst',customers_from) AS Origin, 
								   COUNT(*) AS effectif_vg
									FROM customers  inner join relances_gratuites on customers.customers_id=relances_gratuites.customers_id 
									WHERE customers_client='0' 
									AND customers_emv='0' 
									AND customers_seance ='0' 
									AND relances_gratuites_inscription_date>='" . $date_du . "' and  relances_gratuites_inscription_date<='" . $date_au . "'
									GROUP BY Origin "); 
		
									and 
		
	     $query = mysql_query("SELECT IF(cu.customers_from LIKE '1st%','1rst',cu.customers_from) AS Origin, 
							   COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command,
							   AVG(co.commandes_montant) AS Mmc 
								FROM customers cu
								INNER JOIN commandes co 
								ON cu.customers_id=co.customers_id 
								INNER JOIN relances_gratuites rg 
								ON cu.customers_id=rg.customers_id  
								WHERE co.commandes_status='1' 
								AND rg.relances_gratuites_inscription_date>='" . $date_du . "' AND  rg.relances_gratuites_inscription_date<='" . $date_au . "'  
								GROUP BY Origin ";
		
	} else if (isset($date_du) && $date_du != '') {
		$query_vg = mysql_query("SELECT IF(customers_from LIKE '1st%','1rst',customers_from) AS Origin, 
								   COUNT(*) AS effectif_vg
									FROM customers  inner join relances_gratuites on customers.customers_id=relances_gratuites.customers_id 
									WHERE customers_client='0' 
									AND customers_emv='0' 
									AND customers_seance ='0' 
									AND relances_gratuites_inscription_date>='" . $date_du . "' 
									GROUP BY Origin "); 
										
										and
										
		$query = mysql_query("SELECT IF(cu.customers_from LIKE '1st%','1rst',cu.customers_from) AS Origin, 
							   COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command,
							   AVG(co.commandes_montant) AS Mmc 
								FROM customers cu
								INNER JOIN commandes co 
								ON cu.customers_id=co.customers_id 
								INNER JOIN relances_gratuites rg 
								ON cu.customers_id=rg.customers_id  
								WHERE co.commandes_status='1' 
								AND rg.relances_gratuites_inscription_date>='" . $date_du . "'   
								GROUP BY Origin");
	}
	
	else (isset($date_au) && $date_au != '') {
		$query_vg = mysql_query("SELECT IF(customers_from LIKE '1st%','1rst',customers_from) AS Origin, 
								   COUNT(*) AS effectif_vg
									FROM customers  inner join relances_gratuites on customers.customers_id=relances_gratuites.customers_id 
									WHERE customers_client='0' 
									AND customers_emv='0' 
									AND customers_seance ='0' 
									AND relances_gratuites_inscription_date>='" . $date_au . "' 
									GROUP BY Origin "); 
										
										and
										
		$query = mysql_query("SELECT IF(cu.customers_from LIKE '1st%','1rst',cu.customers_from) AS Origin, 
							   COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command,
							   AVG(co.commandes_montant) AS Mmc 
								FROM customers cu
								INNER JOIN commandes co 
								ON cu.customers_id=co.customers_id 
								INNER JOIN relances_gratuites rg 
								ON cu.customers_id=rg.customers_id  
								WHERE co.commandes_status='1' 
								AND rg.relances_gratuites_inscription_date>='" . $date_au . "'   
								GROUP BY Origin");
	}
	

4 réponses

Utilisateur anonyme
 
ton code n'est pas du tout logique je trouve mais bon ...

essaye ça

<?php
	if (isset($date_du) && isset($date_au)) 
	{
		
		$query_vg = mysql_query("SELECT IF(customers_from LIKE '1st%','1rst',customers_from) AS Origin, 
								   COUNT(*) AS effectif_vg
									FROM customers  inner join relances_gratuites on customers.customers_id=relances_gratuites.customers_id 
									WHERE customers_client='0' 
									AND customers_emv='0' 
									AND customers_seance ='0' 
									AND relances_gratuites_inscription_date>='" . $date_du . "' and  relances_gratuites_inscription_date<='" . $date_au . "'
									GROUP BY Origin "); 

	     $query = mysql_query("SELECT IF(cu.customers_from LIKE '1st%','1rst',cu.customers_from) AS Origin, 
							   COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command,
							   AVG(co.commandes_montant) AS Mmc 
								FROM customers cu
								INNER JOIN commandes co 
								ON cu.customers_id=co.customers_id 
								INNER JOIN relances_gratuites rg 
								ON cu.customers_id=rg.customers_id  
								WHERE co.commandes_status='1' 
								AND rg.relances_gratuites_inscription_date>='" . $date_du . "' AND  rg.relances_gratuites_inscription_date<='" . $date_au . "'  
								GROUP BY Origin ";
								
		if (isset($date_du) && $date_du != '') 
		{
			$query_vg = mysql_query("SELECT IF(customers_from LIKE '1st%','1rst',customers_from) AS Origin, 
									   COUNT(*) AS effectif_vg
										FROM customers  inner join relances_gratuites on customers.customers_id=relances_gratuites.customers_id 
										WHERE customers_client='0' 
										AND customers_emv='0' 
										AND customers_seance ='0' 
										AND relances_gratuites_inscription_date>='" . $date_du . "' 
										GROUP BY Origin "); 
			$query = mysql_query("SELECT IF(cu.customers_from LIKE '1st%','1rst',cu.customers_from) AS Origin, 
								   COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command,
								   AVG(co.commandes_montant) AS Mmc 
									FROM customers cu
									INNER JOIN commandes co 
									ON cu.customers_id=co.customers_id 
									INNER JOIN relances_gratuites rg 
									ON cu.customers_id=rg.customers_id  
									WHERE co.commandes_status='1' 
									AND rg.relances_gratuites_inscription_date>='" . $date_du . "'   
									GROUP BY Origin");
		}
		
		if(isset($date_au) && $date_au != '') 
		{
			$query_vg = mysql_query("SELECT IF(customers_from LIKE '1st%','1rst',customers_from) AS Origin, 
									   COUNT(*) AS effectif_vg
										FROM customers  inner join relances_gratuites on customers.customers_id=relances_gratuites.customers_id 
										WHERE customers_client='0' 
										AND customers_emv='0' 
										AND customers_seance ='0' 
										AND relances_gratuites_inscription_date>='" . $date_au . "' 
										GROUP BY Origin "); 
			$query = mysql_query("SELECT IF(cu.customers_from LIKE '1st%','1rst',cu.customers_from) AS Origin, 
								   COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command,
								   AVG(co.commandes_montant) AS Mmc 
									FROM customers cu
									INNER JOIN commandes co 
									ON cu.customers_id=co.customers_id 
									INNER JOIN relances_gratuites rg 
									ON cu.customers_id=rg.customers_id  
									WHERE co.commandes_status='1' 
									AND rg.relances_gratuites_inscription_date>='" . $date_au . "'   
									GROUP BY Origin");
		}
	}
?>
0
sinifer Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   11
 
Merci,

Je sais qu'il est pas des plus logique mais si ta une piste ce serait gentile et merci pour le bout de code que tu vien de me donné par contre a la place de if je devrai pas mettre des else if et else???
0
sinifer Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   11
 
Merci Dante-33,

Mais je comprend pas pourquoi avec des if sa marche et pas avec des else if ??
0
Utilisateur anonyme
 
En français ca donne ->

dans ta version :

Si la variable $date_du est définie et si la variable $date_au est définie
// c'est là ou est l'erreur car on rentrera toujours dans ce cas
on fait une action
sinon si la variable $date_du est définie
// c'est là ou est l'erreur car on rentrera jamais dans ce cas
on fait une autre action
sinon si la variable $date_au est définie
// c'est là ou est l'erreur car on rentrera jamais dans ce cas
on fait une dernière action

dans ma version :

Si la variable $date_du est définie et si la variable $date_au est définie alors
si la variable $date_du est définie
on fait une autre action
si la variable $date_au est définie
on fait une dernière action
0
sinifer Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   11
 
pour ceu que sa intéresserai

 $condition = "";
   
      if (isset($date_du) && !empty($date_du)) {
            $condition .= " AND rg.relances_gratuites_inscription_date>='" . $date_du . "' ";
         }
   
      if (isset($date_au) && !empty($date_au)) {
             $condition .= " AND rg.relances_gratuites_inscription_date<='" . $date_au . "' ";
        }
   
      $query_vg = mysql_query("SELECT IF(customers_from LIKE '1st%','1rst',customers_from) AS Origin,
                              COUNT(*) AS effectif_vg
                               FROM customers c inner join relances_gratuites rg on c.customers_id=rg.customers_id
                               WHERE customers_client='0'
                               AND customers_emv='0'
                               AND customers_seance ='0'
                               " . $condition . "                        
                               GROUP BY Origin " );
 
    
      $query = mysql_query("SELECT IF(cu.customers_from LIKE '1st%','1rst',cu.customers_from) AS Origin,
                              COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command,
                              AVG(co.commandes_montant) AS Mmc
                               FROM customers cu
                               INNER JOIN commandes co
                               ON cu.customers_id=co.customers_id
                               INNER JOIN relances_gratuites rg
                               ON cu.customers_id=rg.customers_id
                               WHERE co.commandes_status='1'
                               " . $condition . "
                              GROUP BY Origin " );
0