Problème d'imbrication if pour ma requete
Résolu
sinifer
Messages postés
323
Statut
Membre
-
Utilisateur anonyme -
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??
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");
}
A voir également:
- Problème d'imbrication if pour ma requete
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
- Difficulté avec requête SQLite ✓ - Forum Android
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ? ✓ - Forum Access
4 réponses
ton code n'est pas du tout logique je trouve mais bon ...
essaye ça
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");
}
}
?>
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???
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???
Merci Dante-33,
Mais je comprend pas pourquoi avec des if sa marche et pas avec des else if ??
Mais je comprend pas pourquoi avec des if sa marche et pas avec des else if ??
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
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
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 " );