我创建了以下功能;
要检查数据库中是否存在记录,如果存在记录,则返回true,否则返回false,并且当前返回行的第四列,即$ row ['isannounced']字段。
该值为true或false。但问题是如果行是空的,行数仍然是1.有没有更好的方法来处理这个?
提前致谢。
function isnotificationannounced($dspid, $clldsq, $clldtm){
//echo 'in : isnotificationannounced<br>';
$res=false;
$qry = "SELECT * FROM tbl_maindisplay_notification where (clldsq='$clldsq' AND clldtm='$clldtm' AND dspid='$dspid')";
//echo $qry;
$result = querydb($qry);
if ($result) {
$row = mysql_fetch_array($result);
//echo 'row data:<br>';print_r($row);
if(count($row)>0){
$res=$row[4];
//print_r($row);
}
} else {
die("existsindb: Query failed");
}
unset($clldsd, $clldtm, $tdcode);
return $res;
}
答案 0 :(得分:3)
使用mysql_num_rows($ result)代替count($ result)谢谢。
答案 1 :(得分:1)
使用select *,您将查询完整的表格内容。
尝试使用select count(*)from,并检查返回值。
答案 2 :(得分:0)
请将条件更改为....
if(count($row)>0 && $row[4] != ""){
$res=$row[4];
//print_r($row);
}
答案 3 :(得分:0)
我想你需要看到这篇文章: MySQL SELECT only not null values
引入第二个条件来检查值是否为空。
答案 4 :(得分:0)
function isnotificationannounced($dspid, $clldsq, $clldtm){
//echo 'in : isnotificationannounced<br>';
$res=false;
$qry = "SELECT * FROM tbl_maindisplay_notification where (clldsq='$clldsq' AND clldtm='$clldtm' AND dspid='$dspid')";
//echo $qry;
$result = querydb($qry);
if ($result) {
$row = mysql_fetch_array($result);
//echo 'row data:<br>';print_r($row);
if(empty($row)){
$res=true;
}else{
$res=$row[4];
//print_r($row);
}
} else {
die("existsindb: Query failed");
}
unset($clldsd, $clldtm, $tdcode);
return $res;
}
感谢你们所有人..
我已将代码更新到上面,如果您有任何建议/建议,请告诉我。