PHP代码执行但没有输出

时间:2014-01-07 13:52:52

标签: php mysqli

我正在尝试学习“使用php从mysql数据库中搜索元素”。

为此,我创建了一个名为randomdata的数据库。在randomdata数据库中有一个名为randomtable的表。在此表中有四列:名称,姓氏,电子邮件和性别。

我想通过性别搜索​​人物。为此,我尝试了以下查询。

 $query="SELECT * FROM randomtable WHERE Gender =' ".$gender . " ' ";

我尝试了两种,GET和POST功能。但我仍然无法输出。我正在使用这些。

  • Windows 8
  • Wampserver
  • 记事本++

    我重新启动了服务器和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());
        }
    }
    ?>
    

5 个答案:

答案 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());
    }
}
?>