2016-11-14 70 views
-1

能否請你讓我知道我可以對數據庫運行一個查詢兩個表clientappointment到了把JSON像PHP MySQL的出口從兩個表要一個JSON文件

{ 
    "id": "1", 
    "app1": null, 
    "app2": null, 
    "app3":[ 
      "cname": "John", 
      "clastname": "Doe", 
      "cemail": "[email protected]", 
      "cphone": "604", 
    ], 
    "app4":[ 
      "cname": "Mark", 
      "clastname": "Martini", 
      "cemail": "[email protected]", 
      "cphone": "778", 
    ] 
} 

,你可以看到我需要nullapp X字段爲空,並與其中appx = cilentid

這裏是我的表client表中的數據加載

CREATE TABLE Client (
id INT(6), 
cname VARCHAR(30) NOT NULL, 
clastname VARCHAR(30) NOT NULL, 
cemail VARCHAR(50), 
cphone VARCHAR(50) 
); 
INSERT INTO Client 
    (`id`, `cname`, `clastname`, `cemail`, `cphone`) 
VALUES 
    (25, 'John', 'Doe', '[email protected]', '604'), 
    (60 ,'Mark', 'Martini', '[email protected]', '778') 
; 


CREATE TABLE appointments (
id INT(6), 
app1 INT(6) DEFAULT NULL, 
app2 INT(6) DEFAULT NULL, 
app3 INT(6) DEFAULT NULL, 
app4 INT(6) DEFAULT NULL 
); 

INSERT INTO appointments 
    (`id`, `app1`, `app2`, `app3`, `app4`) 
VALUES 
    (1,null,null,null,60), 
    (2,25,null,null,null) 
; 

enter image description here

+1

你有工作的MySQL查詢,會給你你需要的結果嗎?是否有一個理由,你的預約表的設計是這樣的? – Maximus2012

+0

感謝您的回覆,但我需要以這種方式進行設計。我的意思是'約會'app1實際上是'9-10',app2是'10-11'等等。我找不到處理這個問題的更好方法。 – Behseini

+0

如果您創建約會類型表'(appointment_id,start_time,end_time)',將當前約會表更改爲關聯表'(appointment_id,client_id)'。這樣你可以有任何沒有。的約會,而不是當前的限制4.使用當前結構,如果您需要添加其他約會類型,則需要向約會表添加另一列,這是不推薦的。將行添加到表中然後向其添加列會更容易。 – Maximus2012

回答

-1

您可以隨時SELECT的約會,通過循環的結果並將它們放入數組,循環那些無論你從下表中需要陣列和獲取。

$counter = 0; 
$my_array=[]; 
$query = mysqli_query('SELECT * FROM appoints'); 
while ($result = mysqli_fetch_assoc($query)) { 
    foreach ($result as $key => $value) { 
     $my_array[$counter][$key] = ((int) $value > 0 ? (mysqli_fetch_assoc(mysqli_query('SELECT * FROM table WHERE id =' . (int) $usr))) : 'null'); 
    } 
    $counter++; 
} 
var_export(json_encode($my_array)); 

你到底能json_encode整個陣列。

我寧願重新審視整個事情,但這會給你一個關於如何處理這個特定問題的好主意。