【问题标题】:Convert MySQL fetch array query to redbean PHP将 MySQL fetch 数组查询转换为 redbean PHP
【发布时间】:2012-11-19 06:32:35
【问题描述】:

我有 2 个按钮执行 post 操作并设置一个隐藏变量,用于设置 MySQL 查询以根据日期过滤数据库

if result = today

    $query = "SELECT  id,customer_name,CAST( `register_date` AS DATE ) AS dateonly,status,
    DATE_FORMAT(book_date, '%m/%d/%y') FROM  table WHERE   book_date 
    BETWEEN (CURDATE() - INTERVAL 1 DAY) AND CURDATE()";


if result = week

    $query = "SELECT  id,customer_name,CAST( `register_date` AS DATE ) AS dateonly,status,
    DATE_FORMAT(book_date, '%m/%d/%y')  FROM    table
    WHERE   book_date BETWEEN (CURDATE() - INTERVAL 7 DAY) AND CURDATE()";

然后我想使用类似的东西

$result=mysql_query($query);
while ($mytable=mysql_fetch_array($result))
{
 loop and display all the information in array in a table
}

但我需要与此相当的红豆。

【问题讨论】:

    标签: mysql arrays redbean


    【解决方案1】:

    最简单的方法是将 $query 粘贴到 sql 函数中:

    $results=R::getAll($query);
    foreach($results as $row){
        echo $row['id'];
    }
    

    下一种方法是手动构建查询......在我看来这可能会让它看起来更草率:

    $results=R::$f->begin()->select('id, customer_name, CAST( register_date AS DATE ) AS dateonly,status, DATE_FORMAT(book_date, '%m/%d/%y')')->from('table')->where('book_date BETWEEN (CURDATE() - INTERVAL 1 DAY) AND CURDATE())->get();
    

    最后一种方式是通过redbean抓取结果并手动处理:

    $results=R::find('table','book_date BETWEEN (CURDATE() - INTERVAL 7 DAY) AND CURDATE()');
    

    然后循环遍历结果,在php中配置数据。

    【讨论】:

    • 太棒了,谢谢 Tim 使用了第一种方法,更容易理解和理解
    【解决方案2】:

    当我必须从 mysql 访问大量数据时,我总是使用它:

     while ($row = mysqli_fetch_array($query)) { #converts query into array
        $array[] = $row;
    }
    

    $array 将是一个多维数组。 $array[x][column_name] 将为您获取数据,x 是您要从中访问它的行。希望这有帮助。

    【讨论】:

      猜你喜欢
      • 2015-07-24
      • 1970-01-01
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多