【问题标题】:PHP MySQL Database - All rows into Multi-Dimensional ArrayPHP MySQL 数据库 - 所有行到多维数组
【发布时间】:2014-10-07 18:57:04
【问题描述】:

我已经很久没有接触 PHP 了,所以我只需要复习一下。

我有一个 HTML 表单,它捕获多行数据(dataA、dataB、dataC 和 dataD)并将它们插入到数据库表中(dataAll)。我将逐行输入数据到“dataAll”中。我要做的是创建一个 display.php 页面,其中代码将获取所有数据并将每个单元格放入一个数组或数组的行中,例如:

new Array = [["dataA", "dataA", "dataA", "dataA", "dataA"],
             ["dataB", "dataB", "dataB", "dataB", "dataB"],
             ["dataC", "dataC", "dataC", "dataC", "dataC"],
             ["dataD", "dataD", "dataD", "dataD", "dataD"]];

但我不记得如何执行此任务的语法。任何帮助将不胜感激。

数据库名为'compdata',表为'dataAll',每一行为'dataA','dataB'、'dataC'、'dataD'。

如果我需要提供更多信息,请告诉我。

【问题讨论】:

  • 您在寻找:从compdata.dataAll中选择dataA、dataB、dataC、dataD

标签: php mysql sql arrays


【解决方案1】:

由于您要求的是所有行,所以查询的简单代码如下:

<?php
     //after connection to mysql db using mysql_connect()
     $sql = "Select dataA, dataB, dataC, dataD from `compdata`.`dataAll`" ;
     $result = mysql_query($sql) ;
     if(mysql_num_rows($result) > 0 ){
            while($row = mysql_fetch_array($result)){
                  $dataArray[] = $row ;
            }
    } 
   echo '<pre>';
   print_r($dataArray) ;//you got the desired 2D array with all results
?>

【讨论】:

  • 说我不知道​​最后会有多少行,我可以替换为:$sql = "Select * from 'compdata'.'dataAll'" ;
  • 您的查询没有问题,但是有多少“行”取决于 LIMIT 查询而不是“选择 *”或列名。
【解决方案2】:

假设你习惯了旧的 mysql_xxx 函数:

$data = array ();
$result = mysql_query ('select * from dataAll');
while ($row = mysql_fetch_array ($restult, MYSQL_ASSOC))
    $data [] = $row;

结果:

$data = array (
    0=>array ('col_1'=>'dataA', 'col_2'=>dataB...),
    1=>array ('col_1'=>'dataA', 'col_2'=>dataB...)
);

如果您只需要数字而不是列名,请使用 MYSQL_NUM。

但是,mysql 函数正在被更通用的 PDO 对象替换,因此您可能需要研究一下。

$stmt = $pdo->query ('select * from dataAll');
$result = $pdo->fetchAll (PDO::FETCH_ASSOC);    //  Or PDO::FECTCH_NUM

结果与上面相同。

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多