[英]mysql_num_rows returns 0, but the same query in phpMyAdmin return results
我們已經在一個嚴重的問題上工作了幾個小時。
我們有以下代碼:
mysql_connect("localhost","xxx","xxx") or die(mysql_error());
mysql_select_db("xxxe");
$q = "SELECT m.id, m.expired_date, u.email
FROM jos_osemsc_member m, jos_osemsc_orders o, jos_users u
WHERE o.order_id = $orderID
AND m.member_id = o.user_id
AND u.id = o.user_id";
$res = mysql_query($q);
if (!$res) {
mail('xxx@xxx.com','test',mysql_error());
}
mail("xxx@xxx.com", "count", mysql_num_rows($res));
我們收到“計數”郵件,但mysql_num_rows的結果為“ 0”。 如果我們通過電子郵件發送查詢($ q),並在phpMyAdmin中執行查詢,那么它將起作用,並且會得到一行結果...
有任何想法嗎 ?
感謝您的幫助,我們將非常感謝
用戶xxx
可能比您用於PMA的用戶具有更多的限制性權限。
嘗試重新措詞您的查詢。 我發現LEFT JOIN容易理解和處理。
SELECT m.id, m.expired_date, u.email
FROM jos_osemsc_orders AS o
LEFT JOIN jos_osemsc_member AS m ON (m.member_id = o.user_id)
LEFT JOIN jos_users AS u ON (u.id = o.user_id)
WHERE o.order_id = $orderID;
如果這不起作用,請將查詢減少到僅orders表,並確保獲得結果。 如果可行,請添加表格,等等。
另外,我可以看到如果訂單是由用戶而非成員下達的,哪里會有問題,反之亦然。 但是,左聯接樣式查詢將解決該問題。 另外,我在查詢中編輯了表的順序以使其更有意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.