在我的mysql_query中添加DISTINCT或GROUP BY导致不返回任何值

时间:2012-10-25 17:27:23

标签: php mysql distinct

我使用php使用以下代码从mysql数据库获取记录:

<?php
    $username="";
        $password="";
        $database="";
        $hostname="";

               $con = mysql_connect($hostname, $username, $password);

        if (!$con){
            die('Could not connect: ' . mysql_error());
        }

        mysql_select_db($database, $con);


    if(isset($_POST['emp'])){
        $emp = $_POST['emp'];
        $result = mysql_query("SELECT * FROM contact_log", $con);
        echo mysql_num_rows($result);
        die();
        while($row = mysql_fetch_array($result)){
            $emp = $row['emp'];
            echo $emp.'<br>';
        }
        die();
    }

        mysql_close($con);
?>

这很好,并返回正确的字段。问题是,如果我将查询更改为

$result = mysql_query("SELECT DISTINCT * FROM contact_log", $con);

$result = mysql_query("SELECT * FROM contact_log GROUP BY emp", $con);

没有返回任何结果。

mysql_num_rows甚至没有返回一个值,该值向我表明这些行正在破坏我的代码,但我无法弄清楚如何。

1 个答案:

答案 0 :(得分:0)

我怀疑你想在第一次查询时做distinct *。看看你的代码,你可能想要:

"SELECT DISTINCT emp FROM contact_log"

您可以获得有关mysql_error出现问题的更多信息:

mysql_query("select * from table") or die(mysql_error())

最后,您确定要发送$_POST['emp']吗?如果要确定,请在此之后立即回音。而且你知道,你没有使用emp POST变量来输入该代码块以外的任何标志。 $emp = $_POST['emp'];绝对没有做任何事。