0

ユーザーのデータを返す MySQL 構文があります。user Xのデータがあるかどうかを知りたいだけの次のクエリを実行するより良い方法はありますかcategory y

$search_sql = " SELECT id FROM sn_news WHERE id_category = $category AND id_client = $client ";
$search_query = mysql_query($search_sql);    
$search_query_result = mysql_fetch_assoc($search_query);

if($search_query_result)
{
    $search_result = TRUE;
}
else
{
    $search_result = FALSE;
}

TRUEクエリのデータがある場合は何を取得するか、FALSEそうでない場合は後でその結果を使用して、$.post()何を印刷し、何を削除するかを知るだけです。

注:コードは試していませんが、うまくいくと思います

4

2 に答える 2

3
$search_sql = " SELECT id FROM sn_news WHERE id_category = $category AND id_client = $client ";
if ($search_query = mysql_query($search_sql))
{
    $search_result=(mysql_num_rows($search_query) ? TRUE : FALSE);
}

または、実際にデータも取得する

$search_sql = " SELECT id FROM sn_news WHERE id_category = $category AND id_client = $client ";
$search_query_result=array(); // initialise empty return array
if ($search_query = mysql_query($search_sql))
{
    switch mysql_num_rows($search_query)
    {
        case 0:
            $search_result=FALSE;
            break;
        default: // got something
            $search_result=TRUE;
            while ($row=mysql_fetch_assoc($search_query)
            {
                $search_query_result[]=$row;
            }
            break;
    }
}

これは、返された行数をチェックし、整数値 0 が FALSE と同等であるという便利な小さな副作用を使用して、それに応じて変数を設定します。

また、最初にクエリが機能したかどうかを確認するためのチェックも追加します。SQL で構文エラーが発生した場合や、サーバー自体に問題がある場合 (私のコードを参照) を確認することは常に役に立ちます。

于 2012-05-21T08:31:09.993 に答える
1

mysql_fetch_assoc()FALSEフェッチする行がない場合に戻ります。次のように戻り値を確認できます。

$search_result = mysql_fetch_assoc($search_query) !== FALSE;

教えてください、これは基本的に元のコードで行っていることと同じです。

于 2012-05-21T08:34:01.223 に答える