我使用PHP中使用下面的代碼從一個MySQL數據庫中的記錄:添加任何DISTINCT或GROUP BY到我的mysql_query導致要返回沒有值
<?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甚至沒有返回一個值,表明這些行破壞我的代碼,但我無法弄清楚。
由於我們沒有您的表格模式(您應該發佈它),如果您使用您最喜愛的客戶端在服務器上發出查詢,您會得到什麼? – Cascader
如果'mysql_num_rows'失敗,則表示您在'mysql_query'中出錯。你爲什麼不檢查那裏的錯誤? 'mysql_error()'返回什麼? – Barmar
順便說一句,這裏是強制性的「不要使用mysql_XXX」函數,你應該使用mysqli或PDO。「 – Barmar