2017-07-08 70 views
0

這是一個MySQL表我的第一個PHP腳本。PHP腳本:FROM_UNIXTIME和INTO OUTFILE發出

MySQL表看起來如下:

enter image description here

從這個表我想生成以下要求的動態HTML表:

  • HTML表格由NEXT_EVENT
  • 排序ASC
  • HTML表格獲取一個新列,將NEXT_EVENT值顯示爲人類可讀的日期時間。

一旦表格被排序,我需要從第一行輸出ID和NEXT_EVENT值到TXT文件,這兩個值將是逗號分隔。

我tryed寫一個PHP腳本,但出現錯誤。

排序ASC看起來正常,但轉換與UNIXTIME不和文件輸出將不能工作。

mysql table's name is : 'webpilot'

$result = mysqli_query($conn, "SELECT * FROM webpilot ORDER BY NEXT_EVENT ASC"); 

$table = '<table> 
      <tr> 
       <th>ID</th> 
       <th>NAME</th> 
       <th>NEXT_EVENT</th> 
      </tr>'; 

if ($result) { 
    while ($row = mysqli_fetch_assoc($result)) { 
     mysqli_query($conn, "SELECT FROM_UNIXTIME(".$row['NEXT_EVENT'].") as $datetime");    

     $table .= '<tr> 
        <td>'.$row['ID'].'</td> 
        <td>'.$row['NAME'].'</td> 
        <td>'.$row['NEXT_EVENT'].'</td> 
        <td>'.$datetime.'</td> 
        </tr>'; 
    } 
} else { 
    $table .= '<tr><td colspan="3">No date found</td></tr>'; 
} 
$table .= '</table>'; 
echo $table; 

$fileoutput = mysql_query($conn, "SELECT ID,NAME,NEXT_EVENT FROM webpilot INTO OUTFILE '/next_event.txt' LINES TERMINATED BY '\n'"); 

活的結果可以在這裏看到:http://s529471052.onlinehome.fr/bs3/gpio/dyntable.php

,但我不得不註釋掉以下行,因爲它會報告錯誤,避免腳本的其餘部分要運行和PHP要顯示的網頁。

mysqli_query($conn,"SELECT FROM_UNIXTIME(.$row['NEXT_EVENT']) as $datetime"); 

線203與該行:

$fileoutput = mysql_query($conn,"SELECT ID,NAME,NEXT_EVENT FROM webpilot INTO OUTFILE '/next_event.txt' LINES TERMINATED BY '\n'"); 

請你告訴我如何獲得預期的結果。

+0

將'SELECT FROM_UNIXTIME'改爲'SELECT FROM UNIXTIME' 'SELECT FROM UNIXTIME(「。$ row ['NEXT_EVENT']。」)as $ datetime' – urfusion

+0

不是'$ row ['NEXT_EVENT' ]'已經是unix時間戳了嗎?然後忘掉你的第二個查詢,只是用它回顯:'<?= date('Y-m-d H:i:s',$ row ['NEXT_EVENT']); ?>'。 PHP完全可以使用[date()](http://php.net/manual/en/function.date.php)命令將unix時間戳轉換爲不錯的日期。 –

回答

0

你可以檢查MySQL的功能是錯誤的的mysql_query是有ü知道 一個你需要改變mysqli_query需要

$fileoutput = mysqli_query($conn,"SELECT ID,NAME,NEXT_EVENT FROM webpilot INTO `OUTFILE '/next_event.txt' LINES TERMINATED BY '\n'");` 

$日期時間分配數值。例如像$日期時間=日期( 「YMD H:I:S」)

0

HTML表格由NEXT_EVENT(你是正確的)

SELECT * FROM webpilot ORDER BY NEXT_EVENT ASC 

HTML表得到顯示NEXT_EVENT新列進行排序ASC值作爲人類可讀的日期時間。(你可以嘗試更簡單的方法,裏面做的PHP)

$getDateTime = mysqli_query($conn,"SELECT NEXT_EVENT FROM webpilot where NEXT_EVENT=".$row['NEXT_EVENT']."); 

$rowDateTime = mysqli_fetch_array($getDateTime); 

$datetime = date("Y-m-d H:i:s", $rowDateTime('NEXT_EVENT')); 

MYSQL方式:

SELECT ID, FAVORITE, NAME, ORDERTYPE, STATE, LAST_EVENT RECCURENCY, FROM_UNIXTIME(timestamp) as datetime FROM webpilot ORDER BY timestamp ASC 

所以你的這個代碼mysqli_query($conn, "SELECT FROM_UNIXTIME(".$row['NEXT_EVENT'].") as $datetime");可以刪除。

+0

爲什麼在世界上你會這樣做?你只是在'WHERE'中獲得同樣的價值。這就像:_「我想知道什麼值是5的值。」_你已經擁有這個價值。查詢完全沒用!忘記那個查詢,直接使用'$ row ['NEXT_EVENT']'來代替。 –

+0

「SELECT ID,最喜歡的,名稱,訂單類型,州LAST_EVENT RECCURENCY,FROM_UNIXTIME(時間戳)的日期時間從webpilot ORDER BY時間戳ASC」 只是想讓你試試最簡單的方法,如果你不能想到它 – Ricky

+0

@Ricky燦您向我展示如何將您的建議代碼修改集成到我的PHP腳本中?我試圖修改php腳本,但我認爲我仍然做錯了,因爲我仍然得到錯誤。這是我的新php腳本源代碼:http://s529471052.onlinehome.fr/bs3/gpio/phpscript_v1.txt –