我是PHP和MySQL的新手。我正在尝试创建一个简单的搜索表单,我希望根据表单中输入的输入文本显示数据库中的结果。 我的代码是这样的:
form.php的
<!DOCTYPE html>
<html lang="en">
<html>
<head>
<title>test</title>
</head>
<body>
<form action="search.php" method="GET" id="form">
Name: <input type="text" name="name" >
Age:<input type="text" name="age">
Search<input type="submit" name="submit" id="Search" Value="Search">
</form>
</body>
</html>
Connect.php
<?php
$connect = mysql_connect('localhost','$user','$password');
if(!$connect){
die('Could not connect'.mysql_error() );
}
$db_selected = mysql_select_db('test');
if(!$db_selected){
die('wrong'.mysql_error() );
}
?>
的search.php
<?php
include("includes/connect.php");
$name=$_GET['name'];
echo $name;
$query = "SELECT * FROM `cats` WHERE name='\$name'";
$results= mysql_query($query);
if (!empty($results)){
echo "query successful" ;
exit;
}
$row=mysql_fetch_assoc($results);
echo "Age:".$row['age'];
echo "Name:".$row['name'];
?>
echo $names
正确输出结果,echo "query successful"
也是如此。
然而
echo "Age:".$row['age'];
echo "Name:".$row['name'];
只有echo是字符串部分,查询似乎没有获取任何结果。
我尝试将mysql_fetch_asso
c更改为mysql_fetch_array
,但它也没有做任何事情。谁能告诉我这里我做错了什么。我的数据库表有两列和两行。
答案 0 :(得分:3)
您通过$
转义变量中的\$
。
尝试:
$query = "SELECT * FROM `cats` WHERE name='$name'";
修改强>
来自下面的讨论。
undefined index
的问题在于您实际使用的是$row['age']
,数据库中的列名是Age
。因此,在引用该项目时,您必须使用$row['Age']
。 name
也是如此。
答案 1 :(得分:0)
$query = "SELECT * FROM `cats` WHERE name='" . $name . "'";
或没有连接
$query = "SELECT * FROM `cats` WHERE name='$name'";
答案 2 :(得分:0)
这应该有效:
$ query =“SELECT * FROM cats
WHERE name ='$ name'”;
另外,当你打电话给“退出”时在下面的块中,它将取消执行脚本的其余部分:
if (!empty($results)){
echo "query successful" ;
exit;
}