Select count

salut tout le monde , je veux afficher le nombre de message non lu ( code php) , j'ai créer une table message avec un champs non lu , aprés j'ai lancer ma requete malgré il y a des messages dans ma table mais toujours il m'affiche pas de nouveau message
voila mon code si vous avez une idées s'il vous plait n'hésitez pas à m'aidez
<?php 
$sql1 = 'SELECT COUNT(id_parent) FROM messag_parent,admin WHERE id_dest="'.$_SESSION['id'].'" AND id_expe=admin.id_admin AND messag_parent.etat="non_lu" ORDER BY date_parent DESC'; 
$req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error()); 
$data1 = mysql_fetch_array($req1); 
if(($sql1)==0) 
echo "pas de neveau message"; 
else 
{ 
echo $sql1 = 'SELECT COUNT(id_parent) FROM messag_parent WHERE id_dest="'.$_SESSION['id'].'" AND id_expe=admin.id_admin AND messag_parent.etat="non_lu" ORDER BY date_parent DESC'; 
} 
?>

2 réponses

  1. Salut,

    l'erreur est ici :
      if(($sql1)==0) 
    tu test la requete en elle meme ( le texte ) et non le retour de ta Bdd

    D'ailleurs ils serait plus simple de faire un :
    $sql1 = 'SELECT COUNT(id_parent) FROM messag_parent,admin WHERE id_dest="'.$_SESSION['id'].'" AND id_expe=admin.id_admin AND messag_parent.etat="non_lu" ORDER BY date_parent DESC'; 

    $val = mysql_result(mysql_query($sql1),0) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());

    if ( $val == 0 )
    echo "pas de neveau message";
    else
    echo "Il y a des messages";

    ici je peux faire un mysql_result pour cause il y aura toujours au moins la ligne 1 ( qui est numérotée 0 ).
    du coup le mysql_result ne retournera aucune erreur ;)
    1. Ps : Voici la correction de ton code :

      <?php 
          $sql1 = 'SELECT COUNT(id_parent) As Total FROM messag_parent,admin WHERE id_dest="'.$_SESSION['id'].'" AND id_expe=admin.id_admin AND messag_parent.etat="non_lu" ORDER BY date_parent DESC'; 
          $req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error()); 
          $data1 = mysql_fetch_array($req1); 
          if( $data1['Total'] ==0 ) 
                echo "pas de neveau message"; 
          else 
          { 
               echo $sql1 = 'SELECT COUNT(id_parent) FROM messag_parent WHERE id_dest="'.$_SESSION['id'].'" AND id_expe=admin.id_admin AND messag_parent.etat="non_lu" ORDER BY date_parent DESC'; 
          } 
      ?>