2014-02-09 124 views
0

下面給出的PHP函數顯示最新插入一個頁面加載,但是我希望每次插入行時刷新數據。我聽說過阿賈克斯,但我並不是很熟悉它。任何人都可以給我一些指導嗎?僅當發生插入時才使用PHP顯示來自MYSQL的記錄

<!DOCTYPE html> 
<html> 
<head> 
    <link rel="stylesheet" href="OPlayout.css"/> 
    <title>Operator View</title> 
</head> 
<body> 
    <div id="whole"> 
     <section id="mid_section"></br> 
      <h2>Requests</h2></br> 

      <?php include 'functions.php'; 
       currentRequests(); 
      ?> 
     </section> 
    </div> 
</body> 
</html> 

PHP函數:

function currentRequests(){ 
    //Include database connection file 
    include 'databaseConnect.php'; 

    //Call global function to connect to db 
    $connection = connectToDatabase(); 

    $queryToRun = "SELECT * FROM table_user_request 
    WHERE 1=1 
    AND date(entry_date) = date(now()) 
    ORDER BY entry_date DESC"; 

    $result = mysqli_query($connection, $queryToRun); 

    //Create a table to store the results 
    echo "<table border = '1' style='max-width:1180px;font-size: 14px;' > 
     <tr> 
      <td style='width:120px '>Name</td> 
      <td style='width:120px '>Location</td> 
      <td style='width: 20px '># of Riders</td> 
      <td style='width:120px '>Destination</td> 
      <td style='width:150px '>Email</td> 
      <td style='width:100px '>Telephone</td> 
      <td style='width:50px '>Date</td> 
      <td style='width:50px '>Status</td> 
      <td style='width: 60px '>Vehicle</td> 
      <td style='width:50px '>Cancellation Reason</td> 
      <td style='width: 60px '>Priority</td> 
     </tr>"; 

    //Print records until done 
    while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) { 
     //echo("<table border = '1' style='width:1200px'>"); 
     //Output results found in the database 
     echo("<tr> 
      <td>" . $row['1'] 
       . "</td> <td>" . $row['3'] 
       . "</td> <td>" . $row['5'] 
       . "</td> <td>" . $row['4'] 
       . "</td> <td>" . $row['8'] 
       . "</td> <td>" . $row['9'] 
       . "</td> <td>" . $row['10'] 
       . "</td> <td>" . $row['11'] 
       . "</td> <td>" . $row['12'] 
       . "</td> <td>" . $row['13'] 
       . "</td> <td>" . $row['14'] . "</td> 
      </tr>"); 
    } 

    echo("</table>"); 
} 
+0

如何插入新記錄?我沒有看到HTML/JS代碼。它是否在同一頁面上完成? – stackErr

+0

它是在不同的頁面上完成的,這是一個呼叫用戶界面。一旦通過用戶界面插入記錄,我希望能夠在操作員的一端顯示它,而不必刷新整個頁面。 – jorgeAChacon

+0

如果數據庫中存在更多或更少的行,並且相應地更新頁面,則可以每隔幾分鐘比較一次。 – stackErr

回答

0

小技巧:您不需要1=1在SQL時,將取回在默認情況下所有可能的行。我相當肯定,如果您的列數據類型設置正確,則不需要投射date()

SELECT * FROM table_user_request 
     WHERE date(entry_date) = date(now()) 
     ORDER BY entry_date DESC 

我不確定問題是什麼,你想要加載行之間的延遲嗎?刷新數據意味着什麼? Ajax會爲你做什麼是允許數據動態加載而不需要重新加載頁面。

+0

代碼工作正常,因爲它已經從數據庫中提取並顯示記錄,但是我希望每次在表格中插入無需刷新頁面的數據時,都要在頁面上顯示數據。 – jorgeAChacon

+0

感謝您的澄清。每隔幾秒你可以詢問服務器表中是否有新行,如果沒有,則什麼也不做。如果存在,請求服務器將新行作爲JSON數據返回,然後將新數據附加到表中。所有這些都可以用jQuery完成。 GET的將做到這一切!更多關於[jQuery here](http://www.w3schools.com/jquery/jquery_intro.asp)。 –

+0

我以前使用過jquery中的set interval(),但我對語言不太熟悉。無論如何,我會看看哪個是最好的選擇。謝謝 – jorgeAChacon

相關問題