基于 sql 制作一个 html 文本循环


Make a html text loop based on sql

我正在尝试创建类似以下内容的内容:

Start in table ID "14"
IF the variable is = NOT NULL
print: name:value
jump onto next table entry
repeat until it has happened 21 times.

到目前为止没有运气。我尝试创建一个这样的数组:

$array = $db->queryA('SELECT * FROM items WHERE itemId = 101');

但是我无法以字符串的形式与它进行通信。如果我引用像$name = $array[0]["name"];这样的值,我可以提取该值。但即使是一个简单的 foreach 循环,如

foreach($array as $val) {
print $val;
}

行不通。谁能帮助我做错了什么?

此外,字符串看起来像这样 var_dump:

array (size=1)
     0 => 
         array (size=57)
            'itemId' => string '101' (length=3)
            'name' => string 'Berry' (length=10)
            'level' => string '2' (length=1)
            'icon' => string 'images/items/101.jpg' (length=20)
            'max_qua' => string '0' (length=1)

在您的示例中,$value 是一个数组,每个数组都是键值对中表中的一条记录,其中键是表中的列,值是该记录中该列的值。$array看起来像这样:

$array = [0 => 
             ['itemId' => '101', 
              'name' => 'Item Name', 
              'level' => '2', 
              'icon' => 'images/items/101.jpg', 
              'max_qua' => '0'
              ]
          ];

在你的循环中,你会想要这样的东西:

foreach($array as $val) {
    print $val['itemId'];
}

在我的数组示例中,它将为第一条记录打印"101"。我假设您可能在那里有更多记录,但我将摆脱您在评论中提供的示例。

我希望这有帮助

编辑

:我编辑了这个以使用OP在评论中提供的示例数据。

你试过吗:

'Column1: ' . $val['column1']. ', Column2: '. $val['column2']

从 SQL 中提取的列名应该是数组的键,值就是值。这可能取决于您用于查询数据库的类。

编辑到上一个:

由于返回的数组是关联的,因此在 foreach 循环中,尝试如下操作:

foreach($array as $name => $val) {
print $name . ' : ' . $val;
}