我没有在搜索中输入或输入任何随机信息,结果显示,"未找到结果"我没关系,但当我输入任何与MySQL表相关的内容时显示错误,
" **致命错误:在第10行" /home/opticfhb/public_html/vacationsbychoice.com/search_result.php中调用未定义函数mysql_fetch_assocc();
我知道页面可以连接到db。
形式:
<form name="form_search" method="post" action="search_result.php">
<input name="search" id="search" type="text" value="Type the name of City, State or Place you are visiting.." onFocus="if (value == 'Type the name of City, State or Place you are visiting..') {value=''}" onBlur="if (value== '') {value='Type the name of City, State or Place you are visiting..'}" />
<input id="from" type="date" value="Check In" onFocus="if (value == 'Check In') {value=''}" onBlur="if (value== '') {value='Check In'}" />
<input id="to" type="date" value="Check Out" onFocus="if (value == 'Check Out') {value=''}" onBlur="if (value== '') {value='Check Out'}" />
<input name="submit" type="submit" value="Search" />
</form>
PHP:
if(!isset($_POST['search'])) {
header("Location:index.php");
}
$search_sql="SELECT * FROM world_wise WHERE stat_province LIKE '%".$_POST['search']."%' or city LIKE '%".$_POST['search']."%'";
$search_query=mysql_query($search_sql);
if (mysql_num_rows($search_query)!=0) {
$search_rs=mysql_fetch_assocc($search_query);
}
?>
结果:
<h2>Search Result</h2>
<?php if (mysql_num_rows($search_query)!=0) {
do { ?>
<p><?php echo $search_rs['name']; ?></p>
<?php } while ($search_rs=mysql_fetch_assocc($search_query));
} else {
echo "No Results Found";
}
?>
答案 0 :(得分:3)
简单;将mysql_fetch_assocc
的实例更改为mysql_fetch_assoc
(拼写错误)
在函数名称的末尾有2x c
而不是1。
在生产模式下,在文件顶部使用错误报告。
error_reporting(E_ALL); ini_set('display_errors', 1);
<强>脚注:强>
您目前的代码向SQL injection开放。使用prepared statements或PDO。
mysql_*
函数弃用通知:
http://www.php.net/manual/en/intro.mysql.php
从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqli或PDO_MySQL扩展名。在选择MySQL API时,另请参阅MySQL API Overview以获得进一步的帮助。
这些功能允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/。
可以在»http://dev.mysql.com/doc/找到MySQL的文档。
答案 1 :(得分:0)
我认为这是一个简单的拼写错误:mysql_fetch_assoc()
,而不是mysql_fetch_assocc()
。
答案 2 :(得分:0)
正如您所看到的,您正在使用错误的mysql函数mysql_fetch_assocc,其mysql_fetch_assoc
if(!isset($_POST['search'])) {
header("Location:index.php");
}
$search_sql="SELECT * FROM world_wise WHERE stat_province LIKE '%".$_POST['search']."%' or city LIKE '%".$_POST['search']."%'";
$search_query=mysql_query($search_sql);
if (mysql_num_rows($search_query)!=0) {
$search_rs=mysql_fetch_assoc($search_query);
}
?>
如果您不确定所使用的功能,请尝试启用调试模式,简而言之,使error_reporting始终显示错误