L'output del tuo codice stava inserendo <img>
tag all'interno dell'attributo src del tag.
Questo per definizione non funziona in HTML. Se tutto il resto è corretto, dovrebbe funzionare:
<?php
function get_random_elements( $array,$limit = 0 ) {
shuffle($array);
if ( $limit > 0 ) {
$array = array_splice($array, 0, $limit);
}
return $array;
}
function render_images() {
global $stmt3;
$output = '';
if ($count = sqlsrv_num_rows($stmt3) > 0) {
while ($recentBadge = sqlsrv_fetch_array($stmt3)) {
$result[] = $recentBadge;
}
if ($count > 3) {
$result = get_random_elements(result, 3);
}
foreach ($result as $recentBadge) {
$output .= $recentBadge['BadgeName'];
$output .= '<img src="' . $recentBadge['BadgeImage'] . '" alt="">';
$output .= '<br>';
}
} else {
$output = 'no results';
}
return $output;
}
?>
<span class="fa-stack fa-5x has-badge" >
<div class="badgesize">
<?php echo render_images(); ?>
</div>
</span>
Come consiglio:prova a mantenere il tuo codice separato, la logica separata dalla vista.