4

以下の関数を作成しました。

レコードがデータベースに存在するかどうかを確認するには、レコードが存在する場合はtrueを返し、そうでない場合はfalseを返し、現在、フィールド$row['isannounced']である行の4番目の列を返します。

値は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;
}
4

5 に答える 5

3

count($ result)の代わりにmysql_num_rows($ result)を使用します

ありがとう。

于 2013-01-08T06:59:17.613 に答える
1

select *を使用すると、テーブルの完全な内容をクエリできます。

からselectcount(*)を使用して、戻り値を確認してください。

于 2013-01-08T06:52:44.017 に答える
0

条件をこちらに変更してください…。

if(count($row)>0 && $row[4] != ""){
                $res=$row[4];
                //print_r($row);
        }  
于 2013-01-08T06:52:46.633 に答える
0

私はあなたがこの投稿を見る必要があると思います: MySQLSELECTはnull値だけではありません

値がnullでないかどうかを確認するために、2番目の条件を導入します。

于 2013-01-08T07:01:23.723 に答える
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;
}

あなた方全員に感謝します..

コードを上記に更新しました。推奨事項や提案があればお知らせください。

于 2013-01-09T10:13:58.623 に答える