Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & Oracle
PHP & Oracle Forum d'entraide sur Oracle avec PHP. Avant de poster -> FAQ Oracle et Cours Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/08/2003, 15h45   #1
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Par défaut Recherche nulle dans une base et affichage

Bonjour !

Une donnée d'une table de ma base peut être null. J'effectue une requête dans cette table et je veux afficher le résultat de cette requête avec le script suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
<?
  $l = $_SESSION["login"];
$pa = $_SESSION["pass"];
@ $db = mysql_connect("localhost", "$l", "$pa");
if (!$db) {
echo "Erreur de connection !!!";
if ($_SESSION["rg"]==0)
		echo "<META HTTP-EQUIV=\"Window-TARGET\" CONTENT=\"frame2; URL=Aaccueil.php\">";
echo "<META HTTP-EQUIV=\"Window-TARGET\" CONTENT=\"frame2; URL=Caccueil.php\">";
}
mysql_select_db("Proteomique"); 
$query = "select Fax from User where Login='$l'";
$res = mysql_query($query);
$num = mysql_num_rows($res);
if ($num > 0) {
	$row = mysql_fetch_array($res);
	$fax = $row["Fax"];
	echo "$fax";
	session_register("fax");
	}
else 
	echo "Pas de numéro";
mysql_close();
  ?>
Ce qui fait que si le nombre de lignes trouvées est > à 0, il affiche quelque chose (un numéro de fax, en l'occurence) alors que dans le cas contraire, il affiche la string "Pas de numéro".
Cependnt, quand je fais tourner le script, celui-ci ne m'affiche rien quand la donnée est null ! !
Pourquoi tant de haine ???

Merci de vos réponses !

@ +++
GLDavid est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 14h37   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
SALUT !

c'est quel champ qui est NULL ? FAX ?

et tu veux qu'en fait les champ FAX qui sont NULL soient traités comme s'ils n'existaient pas ?

dans ce cas je te propose ceci :
Code :
SELECT Fax FROM User WHERE Login = '$1' AND Fax IS NOT NULL
ou alors veux-tu que si le champ Fax est NULL, ça t'affiche une valeur particulière ?
dans ce cas :
Code :
echo $row['Fax'] === NULL ? 'NULL' : $row['Fax'];
et utilise plutôt le tableau $_SESSION que les fonctions session_* pour la gestion des variables de session...
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2006, 00h42   #3
Membre du Club
 
Inscription : avril 2005
Messages : 59
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : avril 2005
Messages : 59
Points : 63
Points : 63
Envoyer un message via MSN à ofostier
Par défaut Attention a la roquette

Hello,

C'est normal, tu demande d'afficher un certain valeur de champs pour une ligne qui EXISTE.

si tu avais fait :
Code SQL :
SELECT prénom, fax FROM user WHERE login="monlogin"
tu aurais
prénom: Gérard
fax: Null (Null n'étant pas visible bien sûr !!)
Il y donc bien des données pour la clause lgin="monlogin" puisque "monlogin" existe.
je ne sais pas si je suis bien clair là ...

Ce n'est donc pas la présence d'une ligne que tu doit vérifier
mais tester la valeur de Fax:

Code :
1
2
3
4
if ((is_null($fax))||(trim($fax)==""){
   $fax="Pas de fax ...";
}
echo $fax;
Bon courage

O.FOSTIER
Ni dieu Ni maitre
ofostier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2006, 01h01   #4
Membre du Club
 
Inscription : avril 2005
Messages : 59
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : avril 2005
Messages : 59
Points : 63
Points : 63
Envoyer un message via MSN à ofostier
Par défaut J'oubliais

Pour info,

tu peux aussi tester la valeur Null dans la requete
Explication:

$query = "select IFNULL(mb_fax,'Pas defax ...') as mb_fax from user where login=$l";

si row['fax']==Null
alors echo $row['fax'] renvoi " Pas de fax ..."

IFNULL remplace le NVL sous Oracle

O.FOSTIER
Ni dieu Ni maitre
ofostier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h34.


 
 
 
 
Partenaires

Hébergement Web