Comment afficher 0 si champs est null Mysql

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

j'ai fait deu requete différente qui ce lie mais j'ai un problème d'affichage car un moment j'ai un resultat null donc sa m'affiche pas et je perd une place donc c'est un autre résultat qui me prend la place du null j'aimerai savoir comment fair pour que sa m'affiche '0'

je vous montre mes deu requete

<?php

$query_vg ="
SELECT substr(customers_from, 1, 3) AS Origin, 
       COUNT(*) AS effectif_vg
FROM customers 

GROUP BY Origin ";
$result_vg = mysql_query($query_vg) ;



	// requete pour chaque ligne "client" (ayant une facture)
	$query = " SELECT substr(customers_from, 1, 3) 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 
WHERE co.commandes_status='1'  
GROUP BY Origin ";
	$result = mysql_query($query) ;
	
 while ($row1 = mysql_fetch_array($result_vg) and $row = mysql_fetch_array($result) ) 
{
?>
		<tr>
			<td style="background-color:#CCCCCC;">  </td>
            <td style="text-align:center;"> <?php echo $row1['Origin'] ?> </td>
			 <td style="text-align:center;"> <?php echo $row1['effectif_vg'] ?> </td>
			<td style="text-align:center;"> <?php echo $row['command'] ?> </td>
            <td style="text-align:center;"> <?php echo round(($row['command']*$row['Mmc'])) ?> euro</td>
              <td style="text-align:center;"> <?php echo round($row['Mmc'] ,2)?> </td>
		</tr>  
<?php
}
?>



Merci
A voir également:

5 réponses

jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
Bonjour,
tu peux faire un SELECT ifnull( nom_de_ton_champs , '0')
qui te renverra 0 au lieu de null dans ta requête
4
sinifer Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   11
 
je te remerci j'ai fait comme sa

$query = " SELECT substr(customers_from, 1, 3) AS Origin,
       COUNT(DISTINCT cu.customers_id) AS effectif, ifnull( co.commandes_status , '0') ,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 
WHERE co.commandes_status='1'  
GROUP BY Origin ";


Mais sa marche pas je sais pas si c'est parce que je le fai mal??
2
sinifer Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   11
 
Bonjour,

J'ai toujours un problème car dans ma table $row['command'] est a '0' mais quan je l'appel avec ma requette a l'affichage il met pas le zero mais met la valeur de la commande d'un autre.

explication.

j'ai plusieur prospect et pour chaque prospect je veu le nombre de commande
mais j'ai un prospect ou il y a zero commande ce qui fait que dans mon affichage le prospect ou il y a rien prend celui d'un autre je voudrai pouvoir fair en sorte que là ou il y a le prospect avec zero commande sa m'affiche quelque chose comme un message ou autre mais que l'on voit bien que le champs est vide et pas que l'on voi la valeur d'un autre ce qui fait que mon tableau est décalé

$query_vg ="
SELECT substr(customers_from, 1, 3) AS Origin, 
       COUNT(*) AS effectif_vg
FROM customers 

GROUP BY Origin ";
$result_vg = mysql_query($query_vg) ;



	// requete pour chaque ligne "client" (ayant une facture)
	$query = " SELECT substr(customers_from, 1, 3) 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 
WHERE co.commandes_status='1'  
GROUP BY Origin ";
	$result = mysql_query($query) ;
	
 


while ($row1 = mysql_fetch_array($result_vg) and $row = mysql_fetch_array($result) ) 
{
	if($row['command'] == '0' )
	{ $row['command'] .= 'zero';

?>
		<tr>
			<td style="background-color:#CCCCCC;">  </td>
            <td style="text-align:center;"> <?php echo $row1['Origin'] ?> </td>
			 <td style="text-align:center;"> <?php echo $row1['effectif_vg'] ?> </td>
			<td style="text-align:center;"> <?php echo $row['command'] ?> </td>
            <td style="text-align:center;"> <?php echo round(($row['command']*$row['Mmc'])) ?> euro</td>
              <td style="text-align:center;"> <?php echo round($row['Mmc'] ,2)?> </td>
		</tr>  
<?php
}  }	
?>
0
sinifer Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   11
 
Bonjours, j'ai toujours ce problème qui ne ce résolut pas

ce problème est dû au fait que dans ma requete je demande tous les
 co.commandes_status='1'

j'en ai besoin car je doi faire mes calcules vis a vie des personne qui on commandé mais j'aimerai bien aussi sortire toutes les personne inscrite mais qui n'on pas forcément commandé car dans mon tableau sa marche bien mais sa n'affiche pas quant il y a 0 commande, C.A et Mmc ce que j'aimerai.

Ma requette est comme sa:
$query_produit = 
					" SELECT substr(customers_from, 1, 3) 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 
						WHERE co.commandes_status='1' 
						and  substr(customers_from , 1 , 3) ='".$row['Origin']."'
						AND customers_date_inscription BETWEEN '2009-04-01' AND '2009-04-30'
						GROUP BY Origin ";
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sinifer Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   11
 
ce que j'aimerai ce serai une requette qui me prend en considération comme quoi j'ai commande_status='1'

mais que je puisse aussi affiché ceu qui on commande_status='0'

mais bien les diférencier
0