1

「x5 の製品関連テーブル」の行を作成し、MYSQLcode RAND を使用してランダムな製品を生成し、id!='$id' を使用して例外句を生成しています。ここで、id は現在表示されている既存の製品です。

ただし、問題は、生成されたすべての製品画像がすべて同じ類似の製品画像であったことです。誰でもこれに光を当てることができますか?

より良い参照のための写真:

include "MyOnlineStore/storescripts/connect_to_mysql.php";
$sql2          = mysql_query("SELECT * FROM bag WHERE id!='$id'ORDER BY RAND()LIMIT 5");
$productCount2 = mysql_num_rows($sql2); // count the output amount
if ($productCount2 > 0) {
    ?>
    <table border="1">
        <tr>    
    <?php
    while ($row2 = mysql_fetch_array($sql2)) {
        $idrelated    = $row2["id"];
        $imagerelated = $row2["image"];
        $titlerelated = $row2["title"];
    }
} else {
    echo "That item does not exist.";
    exit();
}
mysql_close();

HTML

<table border="1">
    <tr>
        <td>
            <a href="http://example.net/product.php?id=<?php echo $idrelated; ?>">
                <img src="admin/product/uploaded_files/<?php echo $imagerelated; ?>" width="100" height="100" alt="<?php echo $titlerelated; ?>" /> 
            </a>
        </td>
        <td>
            <a href="http://example.net/product.php?id=<?php echo $idrelated; ?>">
                <img src="admin/product/uploaded_files/<?php echo $imagerelated; ?>" width="100" height="100" alt="<?php echo $titlerelated; ?>" /> 
            </a>
        </td>
        <td>
            <a href="http://example.net/product.php?id=<?php echo $idrelated; ?>">
                <img src="admin/product/uploaded_files/<?php echo $imagerelated; ?>" width="100" height="100" alt="<?php echo $titlerelated; ?>" /> 
            </a>
        </td>
        <td>
            <a href="http://example.net/product.php?id=<?php echo $idrelated; ?>">
                <img src="admin/product/uploaded_files/<?php echo $imagerelated; ?>" width="100" height="100" alt="<?php echo $titlerelated; ?>" /> 
            </a>
        </td>
        <td>
            <a href="http://example.net/product.php?id=<?php echo $idrelated; ?>">
                <img src="admin/product/uploaded_files/<?php echo $imagerelated; ?>" width="100" height="100" alt="<?php echo $titlerelated; ?>" /> 
            </a>
        </td>
    </tr>
</table>
4

2 に答える 2

1

あなたのコードは次のようになります

include "MyOnlineStore/storescripts/connect_to_mysql.php";
$sql2          = mysql_query("SELECT * FROM bag WHERE id!='$id'ORDER BY RAND()LIMIT 5");
$productCount2 = mysql_num_rows($sql2); // count the output amount
if ($productCount2 > 0) {
    ?>
    <table border="1">
        <tr>    
    <?php
    while ($row2 = mysql_fetch_array($sql2)) {
        $idrelated    = $row2["id"];
        $imagerelated = $row2["image"];
        $titlerelated = $row2["title"];
        ?>
            <td>
                <a href="http://example.net/product.php?id=<?php echo $idrelated; ?>">
                    <img src="admin/product/uploaded_files/<?php echo $imagerelated; ?>" width="100" height="100" alt="<?php echo $titlerelated; ?>" /> 
                </a>
            </td>
        <?php
    }
?>
         </tr>
    </table>

于 2013-11-05T11:14:21.943 に答える
1

あなたのコードからわかる限り、次の変数:

$idrelated, $imagerelated, $titlerelated

ループを抜けた後も変化しません。したがって、各行で同じ変数と値を参照します。

保持したい場合は、配列を使用して 5 つの値すべてを保持します。

<?php 
$index = 0;
while (...) { 
   $relatedA[$index] = ...;
   $relatedB[$index] = ...;
   $relatedC[$index] = ...;
   $index++;
}
?>
...

<?php echo $relatedA[0]; ?>
<?php echo $relatedA[1]; ?>
...
<?php echo $relatedA[4]; ?>

冗長なコードを避けるために、最後にもう一度ループに入れることができます。

アップデート

値を取得する最初のループにエコーを挿入する誘惑に抵抗してください。スパゲッティ スタイルのコードのメンテナンスが困難になる可能性があるためです (残念ながら、多くの php ソースでよく見られます)。

于 2013-11-05T11:15:04.447 に答える