2013-05-08 38 views
1

傳遞價值,我創建的PHP 頁我想表明,當用戶鍵入weektable.php它應該顯示所有的價值,即它應該執行這個查詢執行在同一頁面mysql的兩個查詢通過在URL

$sql = "SELECT * FROM `battery`"; 

上面的查詢顯示所有的值。

並且當在URL weektable.php用戶類型?排序=瓦特它應該執行這個查詢

$sql = "SELECT * FROM battery WHERE date BETWEEN '".$week."' AND '" .$date."'"; 

上述查詢顯示值的當前日期和時間之前至一星期。

但我不知道該怎麼做。 我想這樣做,而不去到另一個頁面即我想同時顯示在同一頁面中的值

下面是我的PHP代碼:

<?php 
$hostdb = 'localhost'; 
$namedb = 'my_db'; 
$userdb = 'root'; 
$passdb = 'root'; 

try { 

    $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb); 
    $conn->exec("SET CHARACTER SET utf8");  // Sets encoding UTF-8 


$currDate = date('Y-m-d H:i:s'); 
$date = $currDate ; 
// parse about any English textual datetime description into a Unix timestamp 
$ts = strtotime($date); 
// calculate the number of days since Monday 
$dow = date('w', $ts); 
//$offset = $dow - 3; 
$offset = $dow - date('d'); 
if ($offset < 0) { 
    $offset = 6; 
} 
// calculate timestamp for the Monday 
$ts = $ts - $offset*86400; 
// loop from Monday till Sunday 
for ($i = 0; $i < 1; $i++, $ts += 86400){ 
    //print date("Y-m-d l", $ts) ."</br>" . "\n"; 
$week = date("Y-m-d H:i:s", $ts) ."</br>"; 

} 

     $sql = "SELECT * FROM `battery`"; 
     $sql = "SELECT * FROM battery WHERE date BETWEEN '".$week."' AND '" .$date."'"; 


    $result = $conn->query($sql); 

echo "<table border='1' style='font-family:arial;font-size12px;' cellspacing=1> 
<tr> 
<th>User Id</th> 
<th>Firstname</th> 
<th>LastName</th> 
<th>EmailId</th> 
<th>Date</th> 
</tr>"; 

    while($row = $result->fetch(PDO::FETCH_ASSOC)) { 
    echo "<tr>"; 

    echo "<td>" . $row['id'] . "</td>"; 
    echo "<td>" . $row['firstname'] . "</td>"; 
    echo "<td>" . $row['lastname'] . "</td>"; 
    echo "<td>" . $row['emailid'] . "</td>"; 
    echo "<td>" . $row['date'] . "</td>"; 

    echo "</tr>"; 
    } 

echo "</table>"; 

} catch(PDOException $e) { 
    echo 'ERROR: ' . $e->getMessage(); 

} 

?> 

請我需要幫助。 任何幫助將不勝感激。

回答

0

爲第二個查詢定義一個不同的變量。如$sql_range = "SELECT * FROM battery WHERE date BETWEEN '".$week."' AND '" .$date."'";,然後在單獨的變量中獲取結果$result2 = $conn->query($sql_range);

我希望能夠解決您的問題。

+0

但爲此,我將不得不在html中再次寫入新表。我不想創建新表格。 – 2013-05-08 11:45:07

+0

那麼你打算在哪裏以及如何使用所提取的結果? – Preetam 2013-05-08 11:48:45

0
if (isset($_GET["sort"])) { 
    if ($_GET["sort"] == "w") { 
    $sql = "SELECT * FROM battery WHERE date BETWEEN '".$week."' AND '" .$date."'"; 
    } 
}else{ 
    $sql = "SELECT * FROM `battery`"; 
} 

我假設你正在請求該頁面的東西,如:

./weektable.php?sort=w 

我當時也有點懶,應該添加isset($ _ GET [「排序」) - 我編輯了上面的代碼示例..... EDIT抱歉變得非常匆忙IRL,我希望這有助於。感謝那些指出以前的錯誤。

+0

@AI .:但它不適用於我現在顯示我的錯誤注意:未定義的變量:在第41行的weektable.php中的GET – 2013-05-08 11:50:42

+0

現在我更正get中的錯誤。但現在它顯示了另一個錯誤:注意:未定義的索引:在第41行的weektable.php中進行排序 – 2013-05-08 12:07:53