我有这个疑问:回波图像
$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 –