【问题标题】:Put sql into a variable将sql放入变量中
【发布时间】:2013-01-16 20:23:05
【问题描述】:

在 mysql_query 中给出了两行,我希望将每一行放入变量 $date1 和 $date2 中。我的示例代码如下。

while($row=mysql_fetch_array($sql)) {
  $date1 = $row['TheDate'];
  $date2 = $row['TheDate'];
}
echo $date1;
echo $date2;

【问题讨论】:

  • 有什么问题?显示您当前的输出和您想要的输出。至少这里的一件事是您将相同的信息放在两个变量中,并为所有结果覆盖它们
  • 我无法正确理解这个问题,但是使用数组不是也很好吗?我认为 OP 想把第一个日期放在 $date1 中,第二个放在 $date2 中。所以我认为使用数组和 $dates[0] 和 [1] 会更好......但我不确定,如果那是 OP 想要的。
  • 使用数组存储结果,见stackoverflow.com/questions/6741425/…
  • 我希望每一行,日期每次循环时都会放入变量
  • 在同一个变量中?你为什么要那个?

标签: php


【解决方案1】:

虽然我不知道为什么要将 $date1$date2 而不是 $date 作为两个元素的数组,但这里有一种方法:

$i = 1;
while($row=mysql_fetch_assoc($sql)){
    ${"date".$i} = $row['TheDate'];
    $i++;
}
echo $date1;
echo $date2;

正确的方法是将它们分配到一个数组中并像这样访问数据:

while($row=mysql_fetch_assoc($sql)){
    $date[] = $row['TheDate'];
}
echo $date[0];
echo $date[1];

要比较两个日期,您可以执行以下操作:

$difference = $date2- $date1;

或在数组方法中:

$difference = $date[1] - $date[0];

【讨论】:

  • 我想把它放在两个变量中,这样我就可以计算出这个人支付账单的天数
  • @BillHunter 您也可以使用数组计算天数。查看更新的答案。
  • mysql_fetch_array 默认不返回关联数组
  • @Blacksonic 勾选manual,默认为MYSQL_BOTH
  • 这也是答案,但对不起先生,我只能投票给1。但我也谢谢你
【解决方案2】:

我想这就是你需要的。

$dates = array();
$allData = array();
while($row=mysql_fetch_array($sql)){ // switch to mysqli or PDO
    $dates[] = $row['TheDate']; // $dates will have all the dates
    $allData[] = $row; // $allData will have all the data in the query
}

print_r($dates);

PS:

请考虑将您的代码切换到 MySQLi 或 PDO - MySQL 自 PHP 5.5 起已弃用,不再维护。

【讨论】:

    【解决方案3】:
    while($row=mysql_fetch_array($sql)){
         $results[] = $row['TheDate1']
    }
    echo $results[0];
    echo $results[1];
    

    【讨论】:

      【解决方案4】:

      你要做的是创建一个数组:

      $dates = array();
      while($row=mysql_fetch_array($sql)) {
          $dates[] = $row['TheDate'];
      }
      
      var_dump($dates);
      
      // Now if you *really* insist in having it in separate variables you could do:
      
      list($date1, $date2) = $dates;
      

      还有:

      Please, don't use mysql_* functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDOMySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial

      【讨论】:

      • 每个日期都在自己的行中,所以$dates[] = $row['TheDate'] 就足够了。
      • 在外键中有两个日期我想查看前一个日期和最新日期。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-30
      • 2022-06-14
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多