我有一个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()
中使用该结果知道要打印的内容以及要删除的内容。
注意:我没有尝试过代码,但我猜它有效
答案 0 :(得分: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中是否存在语法错误或服务器本身存在问题(请参阅我的代码)
答案 1 :(得分:1)
mysql_fetch_assoc()
会返回FALSE
。您可以像这样检查返回值:
$search_result = mysql_fetch_assoc($search_query) !== FALSE;
告诉你什么,这与您在原始代码中所做的基本相同。