0

現在、アイテムが特定の ID (EventCode) で格納されているデータベースがあります。それらを一意の ID で自分の Web サイトに表示しようとすると、すべてめちゃくちゃになります。一部のアイテムは問題なく、A、B、C、D が正しく表示されます。他のいくつかの項目は、他のイベントの同じ A、B、C、および D を示しています。各アイテムの EventCode を見ると、別のコードになっています...以下のコードに関して、私の問題は何ですか? 一部のアイテムは想定どおりに完全に表示され、他のアイテムは作成済みのアイテムと同じように表示されるのはなぜですか?

<?php
include('base.php');
?>

<?php
if(isset($_GET['EventCode']))
{
     $EventCode = intval($_GET['EventCode']);
     $dn = mysql_query("select A, B, C, D from users_event where EventCode=$EventCode ");
     if(mysql_num_rows($dn)>0)
     {
             $dnn = mysql_fetch_array($dn);
     ?>
 This is the profile of "<?php echo htmlentities($dnn['A']); ?>" :
 <table style="width:500px;">
     <tr>
     <td><?php
 if($dnn['B']!='')
{
     echo '<img src="'.htmlentities($dnn['B']).'" alt="B" style="max-width:100px;max-height:100px;" />';
}
else
{
     echo 'B is not existing.';
}
?>
</td>
     <td class="left"><h1><?php echo htmlentities($dnn['C']); ?></h1>
     Field: <?php echo htmlentities($dnn['D']); ?><br />
      </tr>
 </table>
<?php
     }
     else
     {
             echo 'Sorry, no record found.';
     }
}
else
{
     echo 'No item found';
}
?>
                      </body>
</html>
4

1 に答える 1

0

が一意でない場合$EventCode、結果セットを反復処理していないため、「最初の」レコードのみが取得されます。

すべてのレコードを一覧表示する場合: -while ($dnn = mysql_fetch_array($dn)) { /*...*/ }

1 つのレコードのみが必要な場合: - UNIQUE キーまたは組み合わせを使用します。または、クエリを ORDER および LIMIT することもできます。

于 2013-08-02T20:02:21.340 に答える