【问题标题】:Execute two query from mysql in same page by passing value in url通过在 url 中传递值从同一页面中的 mysql 执行两个查询
【发布时间】:2013-05-02 14:51:36
【问题描述】:

我在php中创建了一个页面 我想显示当用户输入 weektable.php 它应该显示所有值,即它应该执行这个查询

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

上面的查询显示所有的值。

当用户输入 url weektable.php?sort=w 它应该执行这个查询

 $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();

}

?>

我需要帮助。 任何帮助将不胜感激。

【问题讨论】:

    标签: php mysql url post get


    【解决方案1】:

    为第二个查询定义一个不同的变量。比如$sql_range = "SELECT * FROM battery WHERE date BETWEEN '".$week."' AND '" .$date."'";,然后在一个单独的变量$result2 = $conn-&gt;query($sql_range );中为其获取结果

    我希望这能解决你的问题。

    【讨论】:

    • 但是为此我将不得不在 html 中再次编写新表。我不想创建新表。
    • 那么您打算在哪里以及如何准确地使用这两个获取的结果??
    【解决方案2】:
    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["sort"]) - 我已经编辑了上面的代码示例.....编辑抱歉,IRL 变得非常匆忙,我希望这会有所帮助。感谢那些指出早期错误的人。

    【讨论】:

    • @AI.: 但它对我不起作用,它现在向我显示错误注意:未定义变量:在第 41 行的 weektable.php 中获取
    • 现在我更正了 get 中的错误。但现在它显示另一个错误:Notice: Undefined index: sort in weektable.php on line 41
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2016-02-02
    • 2015-12-04
    • 1970-01-01
    相关资源
    最近更新 更多