0

mysql でデータを完全に並べ替える次のコードがあります。

<?php

$con = mysql_connect('localhost','root','password');
mysql_select_db("users");

$pop = mysql_query("
SELECT * FROM images ORDER BY pop DESC LIMIT 9

");

while($row = mysql_fetch_array($pop))
    {
    echo $row['imagefile'];
    echo "<br />";
    }




mysql_close($con);



?>

ただし、各「結果」が変数として自動的に割り当てられるようにしたいと考えています。したがって、たとえば「uploads/logo.png」は、上記のコードの最初の「結果」として出てきます。次に、これに $image_1 を割り当てたいと思います。つまり、コードでは $image_1 = "uploads/logo.png" と読みます。次に、$image_2 が 2 番目の出力などに対応するように、他の 8 つの出力をすべて変数に割り当てます。これはプロトタイプにすぎません。最終的には100件の結果を出力したいと思っています。これはまったく可能ですか?お時間をいただきありがとうございます。

4

1 に答える 1

2

配列を使用します。

$images = array();
while($row = mysql_fetch_array($pop))
    $images[] = $row['imagefile'];

または、連想配列を保持します。

$imageData = array();
while($row = mysql_fetch_array($pop))
    $imageData[] = $row;

// $imageData[0]['imageFile'] will be "uploads/logo.png"

以下のコメントを編集します。

上記の最初の方法:

<?php
foreach ($images as $image) {

    echo <<<EOT
<div class="box"><img src= "$image" width="200" height="150"></a></div>
EOT;
}
?>

データによっては、2 番目の方法がより複雑になる可能性があります。

<?php
foreach ($imageData as $image) {
    $imagePath = $image['imageFile'];
    $imageWidth = $image['width'];
    $imageHeight = $image['height'];
    echo <<<HTML
<div class="box"><img src= "$imagePath" width=$imageWidth height=$imageHeight></a></div>
HTML;
}
?>
于 2012-12-02T17:58:11.713 に答える