我正在尝试学习“使用php从mysql数据库中搜索元素”。
为此,我创建了一个名为randomdata
的数据库。在randomdata数据库中有一个名为randomtable
的表。在此表中有四列:名称,姓氏,电子邮件和性别。
我想通过性别搜索人物。为此,我尝试了以下查询。
$query="SELECT * FROM randomtable WHERE Gender =' ".$gender . " ' ";
我尝试了两种,GET和POST功能。但我仍然无法输出。我正在使用这些。
记事本++
我重新启动了服务器和PC,但没有任何改变。以下是我的完整代码。
查找条目:
男
女
<?php
if(isset($_POST['submit']))
{
echo $gender=$_POST['$gender'];
$connect=mysql_connect("127.0.0.1","root","", "randomdata");
if($connect)
{
//echo 'I am connected';
$query="SELECT * FROM randomtable WHERE Gender =' ".$gender . " ' ";
echo $query;
$results=mysqli_query( $connect,$query);
while($row = mysqli_fetch_array($results))
{
echo $row['Name'] . "<br/>" . $row['Surname'] . "<br/>" . $row['Email'] . "<br/>" ;
}
}
else
{
die(mysql_error());
}
}
?>
答案 0 :(得分:3)
mysql_connect
应为mysqli_connect
答案 1 :(得分:3)
看起来问题在于将POST变量分配给$gender
目前您正在使用
echo $gender=$_POST['$gender'];
请尝试将此更改为
$gender=$_POST['gender'];
的更新强> 的
在测试代码后,问题似乎是isset
。永远不会有POST['Submit']
。
要解决此问题,您需要提交输入中的name属性,即
<input type="submit" Value="Search" name="Submit"/>
同样在查询中,$gender
变量的两侧都有空格。我现在有代码工作,试试这个。
<html>
<body>
Find Entries: <br>
<form action="" method="POST">
<input type="radio" name="gender" Value="Male"> Male </input>
<br>
<input type="radio" name="gender" Value="Female"> Female </input>
<br>
<input type="submit" Value="Search"/>
</form>
<?php
if(isset($_POST['gender']))
{
//print_r($_POST);
$gender=$_POST['gender'];
$connect=mysqli_connect("127.0.0.1","root","password", "randomdata");
if($connect)
{
//echo 'I am connected';
$query="SELECT * FROM randomtable WHERE Gender = '".$gender . "' ";
//echo $query;
$results=mysqli_query( $connect,$query);
while($row = mysqli_fetch_array($results))
{
echo $row['Name'] . "<br/>" . $row['Surname'] . "<br/>" . $row['Email'] . "<br/>" ;
}
}
else
{
die(mysql_error());
}
}
?>
答案 2 :(得分:1)
试试这个......
$query="SELECT * FROM randomtable WHERE Gender ='".$gender . "'";
删除了查询中的额外空格
答案 3 :(得分:0)
全部没有输出?确实很奇怪。
你在发帖什么?
您确定在测试帖中包含“提交”吗?
如果这没有帮助,可能是一个更严重的错误,不允许脚本运行?你能看到php或apache错误日志吗?
答案 4 :(得分:0)
我猜你打算将“提交”索引分配给$ gender变量而不是“性别”索引? 请尝试以下代码:
<?php
if(isset($_POST['submit']))
{
$gender = $_POST['submit'];
$connect = mysql_connect("127.0.0.1", "root", "", "randomdata");
if($connect)
{
$query = 'SELECT * FROM randomtable WHERE Gender = "' .$gender .'"';
$results = mysqli_query($connect, $query);
while($row = mysqli_fetch_array($results))
{
echo $row['Name'] . "<br/>" . $row['Surname'] . "<br/>" . $row['Email'] . "<br/>" ;
}
}
else
{
die(mysql_error());
}
}
?>