这两段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呢? 展开
<!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呢? 展开
3个回答
展开全部
你写在一个文件的目的就是让表单提交在当前页进行处理吧。
那你需要控制让提交表单的时候才执行这段php代码。现在你直接加在后面,第一次打开页面的时候也会去执行,这时候 $word=$_GET["search_text"];这个的值是空的。所以数据库操作也错了。
在php代码之前应该加上判断
if(isset($_GET["search_text"]))
{
//里面是php语句
}
那你需要控制让提交表单的时候才执行这段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。
展开全部
method中的get改成POST,下面程序冲用$_GET['']获得的都改成$_POST[‘’]
更多追问追答
追问
1.当两段代码分开保存在两个文件(即search.html和search.php)时,无论用get,还是用post,程序都可以正确执行。
2.按照你的建议,我把合并后的php文件中的get改成post,还是不解决问题。
可见你的回答是错误的。帮忙再想想。
追答
你的action内别用空格试试,然后加上楼下企鹅提供的判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼正解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询