这两段php和html代码放在一个php文件里为何出错

这段代码是search.html代码:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://ww... 这段代码是search.html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv="Content-Type"content="text/html;charset=gb2312">
<title>搜索</title>
</head>
<body>
<form name="form" action="search.php " method="get">
<input type="text" name="search_text" size="20">
<input type="submit" value="搜索">
</form>
</body>
</html>
search.html文件存在本地文件夹根目录。
下面这段代码是search.php代码,该文件也存在本地文件夹的根目录。

<?php
$word=$_GET["search_text"];
$link=mysql_connect("localhost","root","444968") or die("无法连接");
//localhost、root和password需要根据自己的实际情况来使用。
$db_selected=mysql_select_db("resistorbusiness",$link);
//db_keywords为要打开的数据库。
$sql="select * from lpc_19240_avl where avl like '%$word%' order by count desc ";
//keywords为要打开查询的表
$result=mysql_query($sql,$link);
while($row=mysql_fetch_row($result))
{
for($i=0;$i<mysql_num_fields($result);$i++)
echo "$row[$i]"." ";
echo "<br>";
}
?>
当我把这两个文件合成一个php文件时,执行预览,就出错了。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv="Content-Type"content="text/html;charset=gb2312">
<title>搜索</title>
</head>
<body>
<form name="form" action=" " method="get">
<input type="text" name="search_text" size="20">
<input type="submit" value="搜索">
</form>
<?php
$word=$_GET["search_text"];
$link=mysql_connect("localhost","root","444968") or die("无法连接");
//localhost、root和password需要根据自己的实际情况来使用。
$db_selected=mysql_select_db("resistorbusiness",$link);
//db_keywords为要打开的数据库。
$sql="select * from lpc_19240_avl where avl like '%$word%' order by count desc ";
//keywords为要打开查询的表
$result=mysql_query($sql,$link);
while($row=mysql_fetch_row($result))
{
for($i=0;$i<mysql_num_fields($result);$i++)
echo "$row[$i]"." ";
echo "<br>";
}
?>
</body>
</html>
我只是把原来的html文件里的action的值改为" "。预览时出错:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\httpd-2.2-x64\htdocs\TMP34u9eqgocb.php on line 23
为什麽不能这么合并html和php呢?
展开
 我来答
企鹅的老公
2011-08-25 · TA获得超过1464个赞
知道小有建树答主
回答量:485
采纳率:40%
帮助的人:325万
展开全部
你写在一个文件的目的就是让表单提交在当前页进行处理吧。

那你需要控制让提交表单的时候才执行这段php代码。现在你直接加在后面,第一次打开页面的时候也会去执行,这时候 $word=$_GET["search_text"];这个的值是空的。所以数据库操作也错了。

在php代码之前应该加上判断
if(isset($_GET["search_text"]))
{
//里面是php语句
}
更多追问追答
追问
你的回答有效果。我按照你说,把放到{ }里,预览出来的页面有搜索框,还有错误告警,我输入search_text时,程序转到http://localhost/?search_text=koa。我猜这可能跟我的action=" "有关,不设action,它就默认localhost下的index.html。怎么设置action?
追答
action=" ",里面不要用空格,写上你当前的地址。比如xxxx.php。
求知白度
2011-08-25 · TA获得超过931个赞
知道小有建树答主
回答量:579
采纳率:0%
帮助的人:309万
展开全部
method中的get改成POST,下面程序冲用$_GET['']获得的都改成$_POST[‘’]
更多追问追答
追问
1.当两段代码分开保存在两个文件(即search.html和search.php)时,无论用get,还是用post,程序都可以正确执行。
2.按照你的建议,我把合并后的php文件中的get改成post,还是不解决问题。
可见你的回答是错误的。帮忙再想想。
追答
你的action内别用空格试试,然后加上楼下企鹅提供的判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爆燃小子
2011-08-25 · TA获得超过140个赞
知道小有建树答主
回答量:560
采纳率:0%
帮助的人:245万
展开全部
一楼正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式