PHP MySQL数据库 - 所有行都进入多维数组

时间:2014-10-07 18:57:05

标签: php mysql sql arrays

自从我接触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 ',每行为&# 39; dataA ',' dataB ',' dataC ',& #39; dataD '

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

2 个答案:

答案 0 :(得分:2)

由于您询问了所有行,因此查询的简单代码如下所示:

<?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
?>

答案 1 :(得分:1)

假设你习惯了旧的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

与上述结果相同。