Test sur un champ vide en sql

Résolu/Fermé
polactu39 Messages postés 5 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 13 mars 2014 - 18 août 2010 à 09:54
polactu39 Messages postés 5 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 13 mars 2014 - 18 août 2010 à 10:17
Bonjour,
Pour un carnet d'adresse de mon site, je fais une requête pour chaque lettre. Quand la liste est vide je veux faire apparaître un message.
J'ai tenté :
$sql = "SELECT * FROM annuaire WHERE designation_nom LIKE 'B%'";
//exécution de la requête
$requete = mysql_query($sql, $cnx)
?>
<table style="border: 2px solid black" >
<?php
if ( $requete==NULL)
{
echo 'Aucune adresse à cette lettre';
}
else
{
//affichage des données
while ( $result = mysql_fetch_array( $requete ))
{
?>
Çà m'affiche bien les données quand il yen a mais je dois me gourer pour le test NULL.
Faut-il utiliser Empty?
Merci à l'avance
Dom

2 réponses

varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
18 août 2010 à 10:07
Bonjour,

Personnelement j'ai eu un probleme similaire il y a quelque jour:

je devait recuperer les info d'une requete (900 lignes), mais ignorer les lignes qui avaient un attribut vide (NULL)

Sauf que =='NULL' ou =='null' ou ==NULL ou ==null ne marcjait pas, et j'ai résolu mon probleme en faisant ceci:

$InfoMarqueurs = $Marqueur->GetInfoMarqueurs($this->MarqueurCode);
$this->nbMarqueur = count($InfoMarqueurs);
for ($i = 0; $i < $this->nbMarqueur; $i++)
{
	if ($InfoMarqueurs[$i]->GetDonnee("TypeMarqueur"))
	{
		$this->MarqueurType[$i]		 = $InfoMarqueurs[$i]->GetDonnee("TypeMarqueur");
		if ($InfoMarqueurs[$i]->GetDonnee("NomMarqueur"))
		{
			$this->MarqueurNom[$i] 		 = $InfoMarqueurs[$i]->GetDonnee("NomMarqueur");		// Nom du Marqueur
			if ($InfoMarqueurs[$i]->GetDonnee("Longitude"))
			{
				$this->MarqueurLongitude[$i] = $InfoMarqueurs[$i]->GetDonnee("Longitude");	// Lattitude du Marqueur
				if ($InfoMarqueurs[$i]->GetDonnee("Latitude"))
				{
					$this->MarqueurLatitude[$i] = $InfoMarqueurs[$i]->GetDonnee("Latitude");	// Longitude du Marqueur
				}else
				{
					$i--;
					$this->nbMarqueur--;
				}
			}else
			{
				$i--;
				$this->nbMarqueur--;
			}
		}else
		{
			$i--;
			$this->nbMarqueur--;
		}
	}else
	{
		$i--;
		$this->nbMarqueur--;
	}
}


en gros je compte le nombre de ligne, et si un attribut est null, je decremente le nombre de ligne (nbMarqueur--), et je recule d'un pas dans ma boucle (i--) pour ré-ecrire sur cette ligne.

Donc a chaque récuperation d'attribut pour une ligne, je verifie que l'attribut existe bien, s'il existe bien on continue, sinon on fait la decrementation.

Pour verifier qu'il existe, je fait juste if(données) et cela renvoi vrai si il y a qqch, et faux si NULL ou vide
0