使用两个循环遍历mysql表

时间:2017-12-28 18:25:22

标签: php mysql loops

我在MySQL中有以下表格

|Column1|Column2|Column3|
-------------------------
|Data1  |Data2  |Data3  |
|Data4  |Data5  |Data6  |
|Data7  |Data8  |Data9  |
|Data10 |Data11 |Data12 |
-------------------------

现在在这个表中,我正在使用PHP

获取所有12个单元格的列名

这是我正在处理的循环。

    for($i=0, $j=0; $i<$loopMax; $i++,$j++){//i run rows, j run columns
    if($j>=$column_count){
             $j=0;
    }
    $columns[$i][$j] = mysql_result($query_exec, $j, 'COLUMN_NAME');
    $response[$i][$columns[$i][$j]] = @$result[$j];
    }
     print_r($response);

$ maxLoop 是多个列的值乘以行数。这样我就可以获得需要获取的单元格总数。我必须在json字符串中发送此响应,因此获取此单元格值及其各自的列名称非常重要,因为这将有助于UI结束识别放置哪个值的位置。 表格没有主键

我想要做的是,获取每个单元格值及其所属的列名并将其放入数组中。并将该数组作为jason string发送。

2 个答案:

答案 0 :(得分:2)

如果您在服务器上安装了MySQL版本5.7.8及更高版本,则可以在查询中使用原生JSON函数。

SELECT JSON_OBJECT('Column1', `Column1`, 'Column2', `Column2`, 'Column3', `Column3`);

结果将是......

{ "Column1":"Data1", "Column2":"Data2", "Column3":"Data3" },
...
...
{ "Column1":"Data10", "Column2":"Data11", "Column3":"Data12" }

答案 1 :(得分:0)

尝试为您的列创建命名规则,以便您可以获得如下列名称:

 $column_name = 'column'  .'-' .$j

这将使用当前列名而不使用连字符:

 $columns[$i][$j]  = 'column' . $j

换句话说,您只需将$ j的值附加到单词&#39;列&#39;。

- 编辑: 我想您甚至可以在应用程序的前端计算列名。