Signaler

[php,mysql] test variable = null ?? [Fermé]

Posez votre question blbg 302Messages postés mercredi 9 avril 2003Date d'inscription 22 novembre 2007 Dernière intervention - Dernière réponse le 1 juin 2003 à 17:07 par PhP
bonsoir,

pour savoir si une variable est remplis,, je connait empty($..)

mais ds une requette mySQL, ...... on fait comment ..
if(
$..=null;
$..='null';
$..='';
... ???

merciiii !!
Utile
+10
plus moins
Slt blbg

Soit la table MySql test suivante :

CREATE TABLE test (
tst_lib char(20) default NULL,
tst_dat datetime NOT NULL default '0000-00-00 00:00:00',
tst_int int(11) NOT NULL default '0',
tst_enu enum('un','deux','trois') NOT NULL default 'deux',
tst_set set('a1','b1','c1') NOT NULL default ''
) TYPE=MyISAM;


Tu noteras que le champ tst_lib peut être NULL : c'est d'ailleurs sa valeur par défaut.

Si je veux tous les enregistrement pour lesquels tst_lib est NULL alors il ne faut pas écrire :

SELECT * FROM test WHERE tst_lib = NULL


A la place il faut utiliser la fct ISNULL() ou IS NULL

SELECT * FROM test WHERE ISNULL(tst_lib)
SELECT * FROM test WHERE tst_lib IS NULL

En combinant avec un NOT tu peux tester une inégalité :

SELECT * FROM test WHERE NOT ISNULL(tst_lib)
SELECT * FROM test WHERE tst_lib IS NOT NULL

Retourne tous les enregistrements où tst_lib n'est pas nulle.
Nota : tst_lib peut être une chaîne vide ce qui n'est pas la même chose !


LISEZ LES DOCS !

@+
PhP

[[  The Truth is Out There   ]]
Cette réponse vous a-t-elle aidé ?  
Utile
+1
plus moins
bsoir blbg

Si tu veux savoir si une requette sql renvoie un resultat, deux solutions:

Selection:

"mysql_num_rows()"

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>

plus d'info...
http://www.php.net/manual/fr/function.mysql-num-rows.php

Supression, MAJ (INSERT,DELETE,UPDATE,REPLACE):

"mysql_affected_rows()"

<?php
/* connexion à la base */
mysql_pconnect("localhost", "mysql_user", "mysql_password") or
die("Impossible de se connecter : " . mysql_error());

/* Ceci devrait retourner le nombre correct de lignes effacées */
mysql_query("DELETE FROM mytable WHERE id < 10");
printf ("Records deleted: %d\n", mysql_affected_rows());

/* Sans la clause WHERE, il retourne 0 */
mysql_query("DELETE FROM mytable");
printf ("Lignes effacées : %d\n", mysql_affected_rows());
?>

plus d'infos
http://www.php.net/manual/fr/function.mysql-affected-rows.php

@+
bon courage

Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
Utile
+1
plus moins
merci asevere, mais c'était dans une requette & non si la requette, est null .... mais ça me servira qd même !! ;o)

sinon ... il y avais un truc qui me disait qqe chose .... : IS NULL, IS NOT NULL ....
et effectivement, j'ai retrouvé le passage où il l'indiquait....
j'ai testé et ça marche à merveille, pour savoir si ds une table, une valeur est null ou non !!

merci qd même !
Utile
+0
plus moins
voui bah en effet j'ai hesité à te donner cette réponse car je ne savais pas trop si c'était ca que tu demandais...

Mais dans le doute je l'ai postée quand même :)
Si ca te sert tant mieux :)))
sinon tans pis :(

@+
bonne nuit

Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !