2016-01-04 193 views
0

我有一個php文件,我試圖從數據庫獲取值並顯示在網頁中。我已經寫了一個foreach循環,但它幾次顯示相同的輸出。這裏是我的代碼輸出重複在foreach循環中php

<?php 
session_start(); 
    $host="localhost"; 
    $user="root"; 
    $pass=""; 
    $db="documentation"; 

    $off=$_GET['id']; 
    $conn=mysqli_connect($host,$user,$pass,$db); 
    $query=mysqli_query($conn,"SELECT category_name FROM category WHERE id='$off'"); 
    $rslt=mysqli_fetch_assoc($query); 
    $query1=mysqli_query($conn,"SELECT cat_description FROM category WHERE id='$off'"); 
    $rslt1=mysqli_fetch_assoc($query1); 
    $shown=mysqli_query($conn,"SELECT b.subcat_name, b.id, b.description 
     FROM category a, subcategory b 
     WHERE b.cat_name = (SELECT category_name FROM category WHERE id='$off')"); 





?> 
<html> 
<head> 
    <title>Category</title> 
    <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"> 
    <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css"> 
    <link rel="stylesheet" type="text/css" href="css/mystyle.css"> 
    <script src="js/bootstrap.min.js"></script> 
</head> 
<body> 
<?php 
foreach ($shown as $showsubn) { ?> 
<div class="row"> 
<div class="col-md-12"> 
<p class="border1"> 
<p class="margin"> 
<i class="fa fa-cube"></i> 
<a href="subcat.php?id=<?php echo $showsubn['id']; ?>"><font size="4"><?php implode(" ",$showsubn); echo $showsubn['subcat_name'];?> </font></a> 
<p class="margin"><?php implode(" ",$showsubn); echo $showsubn['description'];?></p> 
</p> 
    </p> 
    <p class="border4"></p> 
</div> 

</div> 
<?php 
    }; ?> 
    </div> 
</body> 
</html> 

輸出應該是 canbangla youbangla

卻是露出 canbangla canbangla canbangla ...高達12分多次 youbangla youbangla youbangla .. .upto 12幾次

+0

了我的解決方案 在我的查詢中使用DISTINCT –

回答

0

您是否嘗試過添加DISTINCT運營商到您的查詢?

你可以用它喜歡:

$shown=mysqli_query($conn,"SELECT DISTINCT b.subcat_name, b.id, b.description 
     FROM category a, subcategory b 
     WHERE b.cat_name = (SELECT category_name FROM category WHERE id='$off')"); 

DISTINCT運算符,這取決於列您選擇

+1

感謝您的幫助 現在是可以正常使用.. –

+0

@ Md.AshiqurRahman歡迎您! –

0

只是這樣做

while ($showsubn = mysqli_fetch_assoc($shown)) 

而不是

foreach ($shown as $showsubn) 
表現出獨特的數據

希望這將解決您的問題

+0

也許你想解釋*爲什麼* OP必須改變這樣的代碼。 – Rizier123

+0

感謝您的幫助。我在查詢中使用了DISTINCT運算符,並解決了我的問題.... –

1

變化

foreach ($shown as $showsubn) { 

while ($showsubn = mysqli_fetch_assoc($shown)) 
+0

也許你想解釋*爲什麼* OP必須改變這樣的代碼。 – Rizier123

+0

@ Rizier123對不起,我不確定它爲什麼有效;我只知道它的工作原理。也許有足夠專業知識的人可以回答「爲什麼」。 – musafar006

0

只要做到這一點

<?php 

while($showsubn = mysqli_fetch_assoc($shown)) 
{ 
?> 

<div class="row"> 
<div class="col-md-12"> 
<p class="border1"> 
<p class="margin"> 
<i class="fa fa-cube"></i> 
<a href="subcat.php?id=<?php echo $showsubn['id']; ?>"><font size="4"><?php implode(" ",$showsubn); echo $showsubn['subcat_name'];?> </font></a> 
<p class="margin"><?php implode(" ",$showsubn); echo $showsubn['description'];?></p> 
</p> 
    </p> 
    <p class="border4"></p> 
</div> 

</div> 

<?php } 
?> 

這將很好地工作。

+0

感謝您的幫助 我在查詢中使用了DISTINCT運算符,並解決了我的問題.... –