PHP MySQL : Display all column names from a given table and the values for any single given row

标签 php mysql sql

我正在尝试解析任何选定的 mysql 表的单行的所有列字段和数据。

这背后的原因是为任何给定的单行创建一个类似“通用”的表解析器。

例如,我有这个表“tbl1”:

+----+---------------------+---------+---------+--+
| id | date                | amounta | amountb |  |
+----+---------------------+---------+---------+--+
| 1  | 2014-02-28 05:58:41 | 148     | 220     |  |
+----+---------------------+---------+---------+--+
| 2  | 2014-01-20 05:58:41 | 50      | 285     |  |
+----+---------------------+---------+---------+--+
| 3  | 2014-03-30 05:58:41 | 501     | 582     |  |
+----+---------------------+---------+---------+--+

并且我希望能够选择表tbl1id = 1导出到:

<label>id <input type="text" value="1"/></label>
<label>date <input type="text" value="2014-02-28 05:58:41"/></label>
<label>amounta <input type="text" value="148"/></label>
<label>amountb <input type="text" value="220"/></label>

这是我迄今为止所拥有的:

if ($_GET['p'] && $_GET['table']) {
    include ("con.php");

    $query = "SELECT * FROM `" . $_GET['table'] . "` WHERE id = '" . $_GET['p'] . "'";
    $result = mysql_query($query);
    while ($row = mysql_fetch_array($result)) {
        $fields[] = $row['0'];
        $p = $row;
    }

    $fields = array();
    $res = mysql_query("SHOW COLUMNS FROM `" . $_GET['table'] . "`");
    while ($x = mysql_fetch_assoc($res)) {
        $fields[] = $x['Field'];
    }

    foreach($fields as $f) {
        foreach($p as $obj) {
            echo '<label>' . $f . ' <input type="text" value="' . $p[$f] . '"></label>';
        };
    }

    mysql_close();
}

我确定问题出在 foreach 循环之间。我知道这是完全错误的,但我不太确定如何解决这个问题。

基本上,想法是从 $_GET['table'] 中选择所有列名称,并为每个列名称查找其值,其中 id = $_GET['p']强>;

最佳答案

if $p 是一个单级数组,如

    Array (
            'field1' => 'value1',
            'field2' => 'value2',
            ...
          )

$fields是一个像这样的数组

    Array (
            0 => 'field1',
            1 => 'field2',
            ...
          )

那么这应该可以工作

foreach($fields as $f) {
       echo '<label>' . $f . ' <input type="text" value="' . $p[$f] . '"></label>';    
}

关于PHP MySQL : Display all column names from a given table and the values for any single given row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22320439/

相关文章:

php - 在 HTML 中嵌入 <form> 的输出

php - 删除 JSON 文件的 key

Mysqldump'不被识别为内部或外部命令可操作程序或批处理文件

sql - 扩展日期范围以从具有排除日期的表中获取一系列日期范围之间的所有日期

php - 在 mysqli 和 php 中与表 2 连接时从表 1 中获取不同的记录

php - 获取大量 ID 的额外数据

php - 使用 preg_replace 提取属性

javascript - 动态 JQUERY 数组适用于某些记录

mysql - 预计脚本 : remote database backup automation

sql - 有关 sql 连接的帮助