[php,mysql] test variable = null ??

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. 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   ]]
    1. Webmaster
      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. 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. Webmaster
          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 !