我收到了错误:
不推荐使用:在第10行的C:\ xampp \ htdocs \ tet \ search_motifasni2.php中弃用了函数split()
注意:未定义的变量:第18行的C:\ xampp \ htdocs \ tet \ search_motifasni2.php中的sql
警告:mysql_num_rows()期望参数1为资源,第32行的C:\ xampp \ htdocs \ tet \ search_motifasni2.php中给出布尔值 doc,术语:
代码:
if (isset($_POST['Submit']))
{
//retrieve search word, trim, remove duplicate
$find = $_POST['find'];
$find = ltrim($find);
$find = rtrim($find);
$find = split(" ",$find);//line 10
$find = array_unique($find);
。 。
if($val<>" " and strlen($val)>0)
{
$sql .=" Terms = '$val' or";//line 18
}
}
。 。
$query = "SELECT * FROM document";
$result = mysql_query($query);
$num = mysql_num_rows($result);//line 32
尝试了很多方法,但在搜索查询时仍然得到相同的结果。
答案 0 :(得分:2)
不推荐使用:不推荐使用函数split() 第10行的C:\ xampp \ htdocs \ tet \ search_motifasni2.php
如上所述,拆分已被删除,请改用<{3}}
注意:未定义的变量:sql in 第18行的C:\ xampp \ htdocs \ tet \ search_motifasni2.php
你没有初始化$sql
变量,在这段代码之前的某个地方,你应该将$ sql初始化为空字符串或其他东西
警告:mysql_num_rows()要求参数1为resource,boolean 在第32行doc中的C:\ xampp \ htdocs \ tet \ search_motifasni2.php中给出 术语:
如上所述,你传递给mysql_num_row的mysql_query结果是一个布尔值,你应该添加更多相关代码来到底...
编辑:来自mysql_query($query)
的结果是错误的,您的查询有问题,您的mysql用户是否可以访问数据库或表?
答案 1 :(得分:1)
首先,不推荐使用split
:而是使用explode
。 (像这样:$find = explode(' ', $find);
基本相同)
此外,您同时使用ltrim
和 rtrim
,我认为您也可以同时使用trim
,这两者都可以。
抛出第二个错误,因为您使用的$sql
变量尚未在第18行定义,您无法将字符串连接到尚未定义的变量(实际上您可以,因为php非常谦虚,但不是很好)
将$sql = '';
放在if
语句之前可以轻松解决。
最后一个错误意味着mysql_num_rows
获取false
作为参数,而它需要一个mysql资源。 $result
为false,因此mysql_query
返回false,执行查询时出现错误,请参阅here。您的表document
是否存在?
答案 2 :(得分:0)
要使用$sql .= ...;
',您必须先执行$sql = '';
来定义它。并使用除分裂之外的其他功能。可能mysql_query失败并返回false
,
答案 3 :(得分:0)
从5.3.0开始,拆分确实已弃用,只需阅读:
http://php.net/manual/en/function.split.php
您正尝试使用“。”添加到$ sql变量。操作数,所以你需要检查先前是否声明了$ sql
我相信你的第3点已在此处得到回答: