2013-09-25 35 views
2

工作正常,結果爲空,但是當我在MySQL的終端或phpMyAdmin的運行它,我得到了我想要的東西。MySQL查詢返回的PHP代碼空,但是當我運行在PHP這個代碼終端

PHP

if ($_GET["action"] == "list") { 
    //Get records from database 
    $mainQuery = mysql_query(" 
    SET SQL_BIG_SELECTS=1; 
    SELECT 
     ci.id AS item_id, 
     ar.title, ar.introtext, 
     flo.value AS logo, fph.value AS phone, fad.value AS address, fur.value AS url, fse.value AS services, fma.value AS map, 
     ar.id AS joomla_id, ci.hidden_id, ci.type 
    FROM kd9fb_content ar 
     RIGHT JOIN calc_settings cs ON ar.catid = cs.joomla_cat 
     LEFT JOIN kd9fb_fieldsattach_values flo ON flo.articleid = ar.id AND flo.fieldsid = 1 
     LEFT JOIN kd9fb_fieldsattach_values fph ON fph.articleid = ar.id AND fph.fieldsid = 2 
     LEFT JOIN kd9fb_fieldsattach_values fad ON fad.articleid = ar.id AND fad.fieldsid = 3 
     LEFT JOIN kd9fb_fieldsattach_values fur ON fur.articleid = ar.id AND fur.fieldsid = 4 
     LEFT JOIN kd9fb_fieldsattach_values fse ON fse.articleid = ar.id AND fse.fieldsid = 5 
     LEFT JOIN kd9fb_fieldsattach_values fma ON fma.articleid = ar.id AND fma.fieldsid = 6 
     LEFT JOIN calc_item ci ON ci.joomla_id = ar.id 
     ORDER BY ci.id DESC; 
    ", $con); 

    while ($row = mysql_fetch_array($mainQuery)) {  
     $rows[] = $row; 
    } 
    //Return result to jTable 
    $jTableResult = array(); 
    $jTableResult['Result'] = "OK"; 
    $jTableResult['Records'] = $rows; 
    print json_encode($jTableResult); 
} 

這將返回NULL:

$row = mysql_fetch_array($mainQuery) 

MySQL的鹼是好的,代碼通過此連接基:

$con = mysql_connect($host, $user, $password) or die("DB login failed!"); 
mysql_select_db($db, $con) or die("select failed"); 
mysql_query("SET NAMES utf8"); 

類似的代碼,但與其他查詢工作正常,我測試了它,顯然是在案件請求。順便說一句,我認爲它是完全非最佳的方式,但我不善於SQL和PHP。

那麼,有什麼問題,我哪裏錯了?

+1

使用的mysqli或PDO –

+0

你希望在$行什麼格式陣列的? –

+0

嘗試使用和mysql_fetch_row而不是mysql_fetch_array –

回答

4

您的查詢實際上有兩個查詢。

"SET SQL_BIG_SELECTS=1; 
SELECT 
    ci.id AS item_id, 
    ar.title, ar.introtext, ....." 

刪除查詢的第一行,它應該沒問題。這是因爲mysql_query()方法只支持一個查詢。但我認爲這個限制在終端IIRC中被刪除了。

如果你需要的第一個語句簡單地執行兩種查詢方法:

mysql_query("SET SQL_BIG_SELECTS=1"); 
$query = "..."; // Rest of your query here 
+0

非常感謝。問題已經解決了。 –

+0

非常歡迎。很高興爲您整理出來。 –