MySQL/phpMyAdmin查询行数(1行)与MySQL行数';计数(0行计数)
下面是有问题的代码:MySQL/phpMyAdmin查询行数(1行)与MySQL行数';计数(0行计数),php,mysql,sql,Php,Mysql,Sql,下面是有问题的代码: <?php // If search option is selected include 'db_connect.php'; database_connect(); $limit = 5; // No of result per page $criteria = 1; // Search criteria $allResults=array(); // Array of results $searchOption = $_REQUEST['sear
<?php // If search option is selected
include 'db_connect.php';
database_connect();
$limit = 5; // No of result per page
$criteria = 1; // Search criteria
$allResults=array(); // Array of results
$searchOption = $_REQUEST['searchoption'];
$searchField = $_REQUEST['searchfield'];
$searchField = str_replace('+',' ', $searchField) ;
$dbcolumn = "user_id";
$dbtable = "profiles";
$order = "user_id";
if ($searchField){
if ($searchOption == "People"){
$words = explode(' ', trim($searchField));
$searchField = $words[0];
$dbcolumn = "profile_display_name";
$dbtable = "profiles P, user_roles U, roles R";
$order = "profile_first_name";
$criteria = " P.user_id = U.user_id AND U.role_id = R.role_id
AND(`profile_display_name` LIKE '%$searchField%'
OR `profile_first_name` LIKE '%$searchField%'
OR `profile_last_name` LIKE '%$searchField%'
OR `profile_email` LIKE '%$searchField%'
OR `profile_state` LIKE '%$searchField%'
OR `profile_zip_code` LIKE '%$searchField%'
OR `business_summary` LIKE '%$searchField%')";
}
//focus here folks (my comment to readers, not actual part of code
else if ($searchOption == "Jobs"){
$dbcolumn = "job_title";
$dbtable = "job_postings";
$order = "`created_date` DESC";
$criteria = "(`job_title` LIKE '%$searchField%'
OR `job_description` LIKE '%$searchField%'
OR `client_name` LIKE '%$searchField%'
OR `city` LIKE '%$searchField%'
OR `state_abbr` LIKE '%$searchField%'
OR `zipcode` LIKE '%$searchField%')
AND `job_status` = 'Open'";
}
else if($searchOption == "News"){
$dbcolumn = "";
$dbtable = "";
$order = "";
$criteria = "1";
}
//Pagination
if($dbtable){
$rs = mysql_query("SELECT * FROM $dbtable WHERE $criteria");
$no_of_rec = mysql_num_rows($rs);
$page = ($_REQUEST['page'])? $_REQUEST['page'] : 1;
$no_of_pages = ceil($no_of_rec/$limit);
$offset = ($page - 1)*$limit;
echo "pagination #rows: $no_of_rec ";
}
}
// If the user enters a value in the search
if ($searchField){
$resultcount = 0;
if($dbtable) {
// Search query executes
$query = "SELECT * FROM $dbtable WHERE $criteria ";
$query .= "ORDER BY $order ";
$query .= "LIMIT $offset, $limit";
$result = mysql_query($query) or die(mysql_error());
$resultcount = mysql_numrows($result);
echo "query: $query ";
echo "result: $result ";
echo "result count: $resultcount ";
}
if ($resultcount <= 0){
$allResults[] = "No match found";
}
else{
// Get search results from database
while ($row = mysql_fetch_array($result)){
$allResults[]=$row;
}
}
}
else{
$allResults[] = "No value entered";
}
?>
此行输入错误
$resultcount = mysql_numrows($result);
您应该调用mysql\u num\u rows()
您也可以使用此代码
$isExist = mysql_query("Select count(id) from ...");
$r = mysql_fetch_array($isExist);
if($r['COUNT(id)'] > 0){
//item exists
}else{
//item doesnt exist
}
这行有一个打字错误
$resultcount = mysql_numrows($result);
您应该调用mysql\u num\u rows()
您也可以使用此代码
$isExist = mysql_query("Select count(id) from ...");
$r = mysql_fetch_array($isExist);
if($r['COUNT(id)'] > 0){
//item exists
}else{
//item doesnt exist
}
您是否检查了mysql错误?mysql没有报告错误,还是您指的是mysql_error()调用?我该怎么做呢?我对PHP还是个新手。+1用于响应您的查询并直接在MySQL中测试查询,这是新提问者通常需要哄着做的两件事。下一步是遵循tereško的建议,并回显mysql_error()的结果,以查看PHP提交查询时mysql是否提供了任何错误。您还可以尝试将一个简单、显式的查询放入PHP脚本中,看看它是否按预期工作。mysql_query()返回一个资源这一事实意味着你正在连接数据库(我想),但你仍然可能以某种不寻常的方式连接。我想我发现了问题的症结所在(在处理另一个具有类似结果的问题时):我们在表jpc中添加了一列,该列与表jp中的一列同名。有两个查询引用了这两个表,两个查询都会检查相关列。当我自己运行包含该列(job_status)的查询时,MySQL告诉我该列的名称不明确。我不知道它是否能解决这个问题,但我遇到了同样的问题(查询查询结果时返回0)。我将给出下一个“11点更新”。该解决方案并没有解决我原来的问题。您是否检查了mysql错误?mysql没有报告错误,或者您是指mysql_error()调用?我该怎么做呢?我对PHP还是个新手。+1用于响应您的查询并直接在MySQL中测试查询,这是新提问者通常需要哄着做的两件事。下一步是遵循tereško的建议,并回显mysql_error()的结果,以查看PHP提交查询时mysql是否提供了任何错误。您还可以尝试将一个简单、显式的查询放入PHP脚本中,看看它是否按预期工作。mysql_query()返回一个资源这一事实意味着你正在连接数据库(我想),但你仍然可能以某种不寻常的方式连接。我想我发现了问题的症结所在(在处理另一个具有类似结果的问题时):我们在表jpc中添加了一列,该列与表jp中的一列同名。有两个查询引用了这两个表,两个查询都会检查相关列。当我自己运行包含该列(job_status)的查询时,MySQL告诉我该列的名称不明确。我不知道它是否能解决这个问题,但我遇到了同样的问题(查询查询结果时返回0)。我将给出下一个“11点更新”。该解决方案并没有解决我原来的问题。Ali\u D:我同意我需要进行更改,我不同意这是问题所在,因为此行还返回0:$no\u of\u rec=mysql\u num\u rows($rs);它使用了正确的语法/格式/“拼写”。不过,如果有机会,我会试试你的代码。(我想编辑我的原始评论,但我不在5分钟的窗口内。)Ali_D:我同意我需要进行更改,我不同意这是问题所在,因为此行还返回0:$no_of_rec=mysql_num_rows($rs);它使用了正确的语法/格式/“拼写”。不过,如果有机会,我会试试你的代码。(我想编辑我的原始评论,但我不在5分钟的窗口内。)