2014-10-17 117 views
0

我寫了一個代碼,輸出所有終端我有一天。這個日曆已經完成。但程序輸出,我想用python不起作用。PHP - JSON不輸出

我的代碼:

<?php 

mysql_connect(deleted); 
mysql_select_db("DB1367141") 

$day = date("d"); 
$month = date("m"); 
$year = date("Y"); 

$result = mysql_query("SELECT * FROM entries WHERE day = '$day' AND month = '$month' AND year = '$year' ORDER BY hour DESC, minute"); 

$array = {}; 

while($obj = mysql_fetch_object($result)) 
{ 
    if($obj->hour != "--") 
     $hour = splitf("%02d", $obj->hour); 
    else 
     $hour = $obj->hour; 

    if($obj->minute != "--") 
     $minute = splitf("%02d", $obj->minute) 
    else 
     $minute = $obj->minute; 

    array_push($array, {"hour":$hour, "minute":$minute, "text":$obj->tex}); 
} 

var_dump($array); 
echo json_encode($array); 

?> 

但是,如果我運行它,它既不陣列比輸出「回波(‘喜’);」

我試着把這個回聲放在開頭,結尾和中間。 但輸出是一樣的:沒有什麼

在另一個論壇上,我發現我必須寫:

$array = array(); 

但輸出是一樣的:沒有。


我試了兩個,正確的語法和錯誤報告。 因爲我改變了$ array = array();沒有改變。 我在我的.htaccess中添加了兩行以獲得更好的錯誤報告,並且它輸出了500內部服務器錯誤。

+0

是否檢查你的數據庫的查詢返回結果?你有沒有迴應說你要加入你的陣列以確保它們被設置? – 2014-10-17 12:00:41

+0

請將相關代碼複製到您的問題中。 – jurgemaister 2014-10-17 12:01:36

+0

啓用錯誤,你會看到你的語法都是錯誤的。 ($ array,{「hour」:$ hour,「minute」:$ minute,「text」:$ obj-> tex})'應該是'array_push($ array,[「hour」=> $ hour,「minute」=> $ minute,「text」=> $ obj-> tex])''你似乎正在將js語法與php混合使用。任何體面的代碼編輯器都會爲你突出顯示這個錯誤 – Steve 2014-10-17 12:02:25

回答

0

可能我建議您嘗試將您的日期存儲轉換爲簡單名稱中的時間戳。這樣,您只需檢查該條目是在「今天」的第一個和最後一個之間。

你會救自己很很多的麻煩,如果你真的需要輸出在JSON佈局可以只使用解析時間戳:

while($obj = mysql_fetch_object($result)) { 
    $array[] = array(
     'hour' => date('H', $obj->timestamp, 
     'minute' => date('i', $obj->timestamp, 
     'text' => $obj->tex 
    ); 
} 
echo json_encode($array); 

date('n', strtotime($strTimestamp)); 
+0

問題是,如何獲得數據庫中的時間戳,如何使未來的時間戳? – 2014-10-19 14:52:06

+0

這超出了這個問題的範圍,爲了不混淆的事情會說有很多資源來處理可以很快找到的資源,請查看PHP手冊的「時間」以及數據庫的TIMESTAMP字段。 – Simon 2014-10-20 03:22:59

0

實例化一個PHP空白數組是

$array = array(); 

編輯:作爲enricog說:)

此外,爲了簡單起見,不需要array_push,我只是用:

$array[] = array("hour" => $hour, "minute" => $minute, "text" => $obj->tex); 
+0

好的,我會使用數組() 但$ array [] = array(...);只允許一個條目正確嗎?,我想要多個條目。可能我會寫: array_push($ array,array(「hour」:$ hour,「minute」:$ minute,「text」:$ obj-> tex)) – 2014-10-17 13:04:12

+0

[]只是將條目添加到結尾數組......如果你在其中放置一個值,比如[「my_key」]或[0],它會每次覆蓋它。 因爲它矗立在我的代碼,陣列將是這個樣子: $數組[0] =第一個項目 $陣列[1] =第二個項目 $數組[2] =第三項 – 2014-10-17 13:12:23

+0

好,謝謝,但問題沒有解決還有500剩下 – 2014-10-17 14:01:35