function givemebann($pos) {
global $db;
$st = $db->prepare("select * from banners where home = '" . $pos . "' limit 1");
$st->execute();
return $st->fetch();
}
<div class='bigwrap' id='bigwrap'>
<?php
$row = givemebann('big-top');
$x = $row['src'];
?>
<img class='bigbann' src='../banners/<?php echo $x; ?>' alt='img'>
</div>
这一切都可以,但是我在单个页面上有50
个这样的地方。
givemebann('left-a');
givemebann('right-b');
...等等
因此,我需要减少php和mysql服务器之间的这种通信,我想解决方案是创建一个值数组,然后从该数组的html中获取它们。
我需要任何帮助来创建这种阵列吗?
答案 0 :(得分:0)
如果只选择SQL查询中真正需要的列而不是所有现有的列,那将是明智的选择。
// declare all the banners that you will need on this page
$banner_list = Array('"left-a"', '"right-b"', '"big-top"', '"small-bottom"');
// get all the required banners
$st = $db->prepare("select home, src from banners where home IN (" . implode(",",$banner_list) . ") GROUP BY home");
$st->execute();
$result = $st->fetchAll();
foreach($result as &$row) $banners[$row['home']] = $row;
<div class='bigwrap' id='bigwrap'>
<?php
$row = $banners['big-top'];
$x = $row['src'];
?>
<img class='bigbann' src='../banners/<?php echo $x; ?>' alt='img'>
</div>