2

我想运行一个查询,从数据库中获取所有数据,然后将数据拆分为每列的数组。有了这个我打算动态填充html。我对 php 不是很有经验,可以使用一些帮助来帮助我根据查询所在的列将查询放入多个数组中。

示例:对于列名,我想要一个数组$itemName[],它将包含按升序排列的每个项目名称。然后对于图像列,我希望$itemImage[]每个图像/图像 url 以相同的顺序排列。

有了这个,我计划运行一个 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>

4

2 回答 2

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>';
}
于 2012-08-31T14:13:02.643 回答
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>';

尽管我确实对您从设计角度实际处理此问题的方式存有疑虑。

于 2012-08-31T14:10:24.213 回答