[php,mysql] test variable = null ??

blbg Messages postés 302 Statut Membre -  
PhP Messages postés 1774 Statut Membre -
bonsoir,

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

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

merciiii !!

4 réponses

  1. PhP Messages postés 1774 Statut Membre 606
     
    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
  2. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
     
    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
  3. blbg Messages postés 302 Statut Membre 10
     
    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
  4. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
     
    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