我有這個疑問:回波圖像
$q4 = "SELECT TOP 5 b.BadgeName, b.BadgeImage FROM BadgeImageTable AS b
INNER JOIN employee_badge AS e
ON e.badge_id = b.BadgeID
WHERE e.employee_id = 2164
ORDER BY e.earned_on DESC ";
$stmt3=sqlsrv_query($conn,$q4);
if($stmt3==false)
{
echo 'error to retrieve info !! <br/>';
die(print_r(sqlsrv_errors(),TRUE));
}
查詢返回此:
在我的PHP現在,我試圖呼應如果查詢給出了多於3行的數據,那麼來自'BadgeImage'列的任意三個隨機圖像。否則,如果查詢給出2行,則僅顯示2個圖像,如果1行,僅顯示1'badgeImage'等等。
PHP代碼,我試圖和未給予正確的結果:
<div class="badgesize">
<?php
if($count = sqlsrv_num_rows($stmt3) > 0){
while($recentBadge = sqlsrv_fetch_array($stmt3)){
$result[] = $recentBadge;
}
if($count > 3){
foreach(array_rand($result, 3) as $val){
$data[] = $result[$val];
}
$result = $data;
}
foreach($result as $recentBadge){
echo $recentBadge['BadgeName'], '<img src="'.$badgerecent['BadgeImage'].'">';
}
} else {
echo 'no results';
}
?>
</div>
當我運行上面的PHP它給「無結果」 INH的UI,即「它不運行如果聲明」,並直接到PHP的其他部分。 這shouldnot發生,因爲查詢取5行數據,如上面的圖片。
當我試圖簡單地echo(使用下面的代碼)沒有上述條件,我能夠這樣做沒有任何問題。
<img src="<?php echo "".($recentBadge['BadgeImage']).""; ?>" >
我使用PHP 38年5月5日和SQL Server 2012
爲什麼不直接在查詢中使用「LIMIT 3」? –
限制3不能用於SQL服務器... @u_mulder – jane
http://stackoverflow.com/questions/971964/limit-10-20-in-sql-server –