2014-10-07 58 views
1

自从我触及PHP已经很长时间了,所以我只需要进行一些更新。PHP的MySQL数据库 - 所有行到多维数组

我有一个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',每一行是 '数据A', '数据B', 'DATAC', 'dataD' 。

如果我需要提供更多信息,请让我知道。

+0

你是否在寻找: 选择数据A,数据B,DATAC,dataD从compdata.dataAll – Alex 2014-10-07 19:00:36

回答

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

说我没” t知道最后会有多少行,我只需要替换为:'$ sql =“select * from'compdata'。'dataAll'”;' – Murphy1976 2014-10-07 19:35:55

+2

查询没有问题,但有多少“行“取决于LIMIT查询不在”select *“或列名上。 – Riad 2014-10-08 08:36:24

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 

与上述结果相同。