繁体   English   中英

如何在PHP中检查表行是否为空?

[英]How to check a table row is empty in PHP?

我想检查在PHP中行是否为空。 如果“ $ jfeta3”不为空,则给出“ Success”的值,否则转到else部分。 在else部分中,如果“ $ jfeta ['rate_number']”大于0,则给出的值为“ Success2”,否则给出的值为“ Success3”。 但是所有值都同时打印(Success,Success2和Success3)。 我想一次只打印一个值。

这是我的PHP代码。

$product_id = mysql_real_escape_string($_GET['p']);

$jsqla = mysql_query("select * from products where id='$product_id'") or die(mysql_error());
$jfeta = mysql_fetch_assoc($jsqla);

$product_id = $jfeta['id'];
$jsqla3 = mysql_query("select * from user_star_rate where product_id='$product_id' and      email='$visit_email'") or die(mysql_error());
$jfeta3 = mysql_fetch_assoc($jsqla3);

if(!is_null($jfeta3)) {
   $ratea = $jfeta3['rate_value'];
   echo "Success = ".$ratea;
   $rateid = $jfeta['id'];
   $arate_num = $jfeta['rate_number'];
} else {
   $arate_num = $jfeta['rate_number'];
   if($jfeta['rate_number'] > 0){ 
       $ratea = $jfeta['rate_score'] / $jfeta['rate_number']; 
       echo "Success2 = ".$ratea;
       $ratea2 = $jfeta['rate_score'];
       $rateid = $jfeta['id'];
       $ratenum = $jfeta['rate_number'];
   }else{ 
       $ratea = $jfeta['rate_score']; 
       echo "Success3 = ".$ratea;
       $ratea2 = $jfeta['rate_score'];
       $rateid = $jfeta['id'];
       $ratenum = $jfeta['rate_number'];
   }
}

is_null()用于检查值是否为null ,不为空。 要查看值是否为空,请使用empty()

if(!empty($jfeta3)) {

应该注意的是, null值被认为是空的,并且将使该检查失败。 其他空值包括:

  • “”(空字符串)
  • 0(0为整数)
  • 0.0(0为浮点数)
  • “ 0”(0作为字符串)
  • array()(一个空数组)
  • $ var; (已声明变量,但没有值)

您的错误在这里: if (!is_null($jfeta3)) is_null()检查值是否为null,而不是空。 只需使用if ($jfeta3) 如果该值为null,则该语句将不执行;如果该值为空,则该语句仍将不执行。

使用if($jfeta3) 它检查语句是否为空。 如果它不为null或不为空,则执行if部分,否则执行else部分。

或者您可以尝试使用mysql_num_rows() > 0替换!is_null() 我尝试了以下代码:

$product_id = mysql_real_escape_string($_GET['p']);

$jsqla = mysql_query("select * from products where id='$product_id'") or die(mysql_error());
$jfeta = mysql_fetch_assoc($jsqla);

$product_id = $jfeta['id'];
$jsqla3 = mysql_query("select * from user_star_rate where product_id='$product_id' and      email='$visit_email'") or die(mysql_error());
$jfeta3 = mysql_fetch_assoc($jsqla3);

if((mysql_num_rows($jsqla) > 0) && (mysql_num_rows($jsqla3) > 0)) {
   $ratea = $jfeta3['rate_value'];
   echo "Success = ".$ratea;
   $rateid = $jfeta['id'];
   $arate_num = $jfeta['rate_number'];
} else {
   $arate_num = $jfeta['rate_number'];
   if($jfeta['rate_number'] > 0){ 
       $ratea = $jfeta['rate_score'] / $jfeta['rate_number']; 
       echo "Success2 = ".$ratea;
       $ratea2 = $jfeta['rate_score'];
       $rateid = $jfeta['id'];
       $ratenum = $jfeta['rate_number'];
   }else{ 
       $ratea = $jfeta['rate_score']; 
       echo "Success3 = ".$ratea;
       $ratea2 = $jfeta['rate_score'];
       $rateid = $jfeta['id'];
       $ratenum = $jfeta['rate_number'];
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM