2012-05-07 8 views
0

私はデータベーステーブルに2つのエントリを持っていますが、なんらかの理由でPHP/SQLがそれぞれ6つの複製を表示しています。PHPデータベースのクエリが2つのエントリだけで6行を返すのはなぜですか?

<? 
mysql_select_db($database_database_connection, $database_connection); 
$getdevices=("SELECT * FROM Device_tbl"); 
$getdevicesresult = mysql_query($getdevices, $database_connection) or die(mysql_error()); 
while($device=mysql_fetch_assoc($getdevicesresult)) 
{ 
foreach($device as $devicevalue) { ?> 

     <div class="hold-cont"> 
     <div class="holder"> 
      <div class="image-hold" > 
       <img class="image-icon" src="images/android.png"/> 
</div> 
     </div> 
     <div class="device-name devicename-txt"><? print_r($device['Model']); ?></div> 
    </div> 

<? }} 
mysql_close(); 
?> 

これは、2つの行だけを返すべきであり、各エントリに対して6つではありません。何か案は?

答えて

3

と次の行

<div class="device-name devicename-txt"><? print_r($device['Model']); ?></div> 

を修正。不要なforeach()コールを取り除く(while()はすべての結果をループします)。

<?php 
mysql_select_db($database_database_connection, $database_connection); 
$getdevices=("SELECT * FROM Device_tbl"); 
$getdevicesresult = mysql_query($getdevices, $database_connection) or die(mysql_error()); 
while($device=mysql_fetch_assoc($getdevicesresult)){ 
?> 
    <div class="hold-cont"> 
     <div class="holder"> 
      <div class="image-hold" > 
       <img class="image-icon" src="images/android.png"/> 
      </div> 
     </div> 
     <div class="device-name devicename-txt"><?php echo $device['Model']; ?></div> 
    </div> 

<?php 
} 
mysql_close(); 
?> 

注:私も$device['Model']としてecho ...print_r(...)を変更したが、配列ではなく、いないすべてのサーバーがshort tagsをサポートするように私は、通常のもの(<?php)にご短いオープニングタグ(<?)を変更しました(Are PHP short tags acceptable to use?参照)。

+0

ああ、うわー、私はそれをやったと信じられない。ありがとう:) – K20GH

0

親切にあなたが二回結果をループしている

<div class="device-name devicename-txt"><? echo($devicevalue['Model']); ?></div> 
+0

特定の理由はありますか? – K20GH

+1

@GregHespの場合、 'foreach()'が使われていたら '$ devicevalue'を使う必要がありますが、そうでないのでそうしないでください。しかし、 'print_r(...)'を 'echo ...'に置き換えるべきです。 '$ device ['Model']'は配列ではありません。 – 0b10011

+0

ああ、変更されました。ありがとう:) – K20GH

関連する問題