2

データベースからすべてのデータを取得し、データを各列の配列に分割するクエリを実行したいと思います。これで、HTMLを動的に入力するつもりです。私はphpの経験があまりなく、クエリがどの列にあるかに応じて、クエリを複数の配列に配置する方法について支援を利用できます。

例:列名に配列が必要で、$itemName[]すべてのアイテム名が昇順で含まれます。次に、画像列に$itemImage[]、すべての画像/画像URLの配列を同じ順序で配置します。

これを使用して、forループを実行する予定です。ここで、xが増加すると、各diff配列を通過し、指定された場所からプルします。私のDBにはnull値がないので、それについて心配する必要はありません。

列名に基づいてクエリを複数の配列に書き込む際に役立つ情報をいただければ幸いです。

    $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 に答える