我想运行一个查询,从数据库获取所有数据,然后将数据拆分为每列的数组。有了这个,我打算动态填充html。我对php不是很有经验,可以使用一些帮助来解决如何将我的查询放入多个数组中,具体取决于它所在的列。
示例:对于列名称,我想要一个数组$itemName[]
,它将以asc顺序包含每个项目名称。然后对于图像列,我希望每个图像/图像网址都有一个数组$itemImage[]
。
有了这个,我打算运行一个for循环,当x增加时,它将遍历每个diff数组并从指定位置拉出。我的数据库中没有空值,所以我不需要担心。
您可以根据列名称将查询写入多个数组中给予我任何帮助。
$mPos = array(mPos1, mPos2, mPos3, mPos4);
for (x=0; x<4; x++){
echo "<div class="$mPos[x]"> <div class="$mPos[x] . '_1'">"$title[x]"</div><div class="$mPos1 . '_2'">"$image[x]"</div>
答案 0 :(得分:1)
我仍然没有意义将它分开,但是你走了。
由于您没有提供数据库/表结构,我将假设您的db表具有以下列:
itemId | itemName | itemImage | itemDescription
在PHP中,您遍历行的结果行并填充数组,如
foreach ( $result AS $row ) {
$itemNames[$row->itemId] = $row->itemName;
$itemImages[$row->itemId] = $row->itemImage;
$itemDescriptions[$row->itemId] = $row->itemDescription;
}
编辑:问题更新后,现在包含HTML输出,我建议像这样。
foreach ( $result AS $row ) {
$items[$row->itemId] = array(
'name' => $row->itemName,
'image' => $row->itemImage,
'description' => $row->itemDescription,
'price' => $row->itemPrice,
'link' => $row->itemLink,
);
}
$x = 0;
while ($x<4) {
$x++;
$item = array_shift($items);
echo '<div class="mPos'.$x.'">
<div class="mPos'.$x.'_1">"'.$item['name'].'"</div>
<div class="mPos'.$x.'_2">"'.$item['price'].'"</div>
<div class="mPos'.$x.'_3"><a href="'.$item['link'].'">
<img src="'.$item['image'].'" /></a>
</div>
</div>';
}
答案 1 :(得分:0)
$sth = $dbh->prepare("SELECT itemName, itemImage FROM myTable");
$sth->execute();
$result = $sth->fetchAll();
$myArr = array();
foreach($result as $row){
foreach($row as $colName => $colVal){
$myArr[$colName][] => $colVal;
}
}
echo '<pre>';
print_r($myArr);
echo '</pre>';
虽然我对你如何从设计角度实际接近这一点感到疑虑。