2014-02-26 102 views
1

所以我嘗試下載JSON成iOS應用程序,我真的不知道了很多關於PHP。PHP腳本選擇MySQL的數據字段,並返回JSON

目前我使用的通用PHP紙條作爲連接MySQL數據庫,並返回JSON結果的代表。

<?php 
$host = "localhost"; //database host server 
$db = "***"; //database name 
$user = "root"; //database user 
$pass = "root"; //password 

$connection = mysql_connect($host, $user, $pass); 

//Check to see if we can connect to the server 
if(!$connection) 
{ 
    die("Database server connection failed."); 
} 
else 
{ 
    //Attempt to select the database 
    $dbconnect = mysql_select_db("***", $connection); 

    //Check to see if we could select the database 
    if(!$dbconnect) 
    { 
     die("Unable to connect to the specified database!"); 
    } 
    else 
    { 
     $query = "SELECT * FROM table"; 
     $resultset = mysql_query($query, $connection); 

     $records = array(); 

     //Loop through all our records and add them to our array 
     while($r = mysql_fetch_assoc($resultset)) 
     { 
      $records[] = $r;   
     } 

     //Output the data as JSON 

     echo json_encode($records); 

    } 


} 


?> 

這樣做的問題是,我不想用JSON編碼我只是想從特定表中返回一些特定的數據字段,所以我不下載不必要的數據整個表。

我知道你在SELECT查詢做到這一點,但東西是錯誤與我的語法這一點。

我一直在試圖用:

$query = "SELECT *[datafield],[otherdatafield],... FROM table"; 

但似乎並不奏效。

此外,在該表中有一些用於構建一個URL的圖像兩個獨立的數據字段和林不知道如何使它們在JSON返回一個場中的兩這裏結合起來。

例如:我有一個基本字符串

"http://wwww.mysite.com/" 

,我想,這樣,當它返回的JSON對象,他們已經連接在一起,使這些領域的兩個數據字段的添加到字符串中的應用可以只使用URL:

"http://wwww.mysite.com/[data field1]/[datafield2]" 
+0

你使用'$記錄[] = $ R;',因此'$ records'數組被reseted每讀取行,導致只在最後一排被json_encoded。 – MichaelvdNet

+0

嘗試在phpmyadmin或mysql工作臺中測試你的sql – SpYk3HH

+0

@ SpYk3HH哦,對不起,我在PHP中不太好。 – MichaelvdNet

回答

1

查詢獲取個人的cols是

select col1,col2,col3 from table_name 

無需提供*像你這樣

$query = "SELECT *[datafield],[otherdatafield],... FROM table"; 
       ^........here * is causing the problem. 
+0

* *事實上會使其失敗。我自己總是在我的列名周圍使用小波浪線。主要是喜歡乾淨的外觀。'SELECT \'COLA \',''COLB \',''COLC \',''COLD \'FROM TABLE' – SpYk3HH

+0

當我嘗試加載時,在瀏覽器中出現同樣的錯誤:似乎沒有任何與之相關的風格信息。文檔樹如下圖所示。 Array [0] – DanR

+0

add header('Content-Type:text/json');在回聲 –

2

查詢你應該嘗試像

$查詢長相= 「SELECT COL1,COL2 FROM表」; //無需星號的,如果你何況山坳名

現在,如果你需要兩列在查詢本身有結合,嘗試像

$ query =「SELECT CONCAT('mysite.com /',col1,'/',col2)FROM table」;

「/」 是兩列之間的分隔符。

+0

感謝工作,如何將我的「http://www.mysite.com/」字符串添加到開始? – DanR

+0

DanR,已經做了一些編輯檢查ans現在.. – avisheks