[php,mysql] test variable = null ??

Fermé
blbg Messages postés 302 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 22 novembre 2007 - 1 juin 2003 à 00:26
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 - 1 juin 2003 à 17:07
bonsoir,

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

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

merciiii !!
A voir également:

4 réponses

PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
1 juin 2003 à 17:07
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   ]]
10
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
1 juin 2003 à 00:54
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 !
1
blbg Messages postés 302 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 22 novembre 2007 10
1 juin 2003 à 00:58
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 !
1
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
1 juin 2003 à 01:09
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 !
0