Rechercher : dans
Par :

Comment afficher 0 si champs est null Mysql

Dernière réponse le 11 mai 2009 à 17:15:04 sinifer, le 6 mai 2009 à 15:25:52 
 Signaler ce message aux modérateurs

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
Configuration: Windows XP
Firefox 3.0.10

Meilleures réponses pour « Comment afficher 0 si champs est null Mysql » dans :
Installation / migration Mysql 5.1 avec les binaires officiels VoirPour de multiples raisons, je préfère installer Mysql depuis les binaires compilés par Mysql ,plutôt que d'utiliser les packages (rpm, apt, ...) : les packages installent dans les répertoires de leur choix, il est difficile de maîtriser cela on...
Formules Excel de base VoirVoici quelques formules de bases qui sont faciles à réaliser et qui peuvent donner un peu de vie à une feuille Excel ! Pour cette astuce, on supposera que l’on veut que le résultat s’affiche dans la cellule B10 et on se servira principalement des...
[Webmaster] Les polices dans les pages web VoirLes limites du web Quand vous utilisez une police dans une page web, elle ne s'affichera que si l'internaute a la même police installée sur son ordinateur. Vous n'avez aucun moyen de forcer l'internaute à télécharger et installer une police, pas...

1

jeangilles, le 6 mai 2009 à 16:28:03

Bonjour,
tu peux faire un SELECT ifnull( nom_de_ton_champs , '0')
qui te renverra 0 au lieu de null dans ta requête

Répondre à jeangilles

2

sinifer, le 6 mai 2009 à 16:33:46
  • +1

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??

Répondre à sinifer

3

sinifer, le 7 mai 2009 à 09:21:08

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
}  }	
?>

Répondre à sinifer

4

sinifer, le 11 mai 2009 à 09:45:05

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 ";

Répondre à sinifer

5

 sinifer, le 11 mai 2009 à 17:15:04

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

Répondre à sinifer