创建数组而不是重复一个函数

时间:2018-07-28 13:11:47

标签: php mysql

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中获取它们。

我需要任何帮助来创建这种阵列吗?

1 个答案:

答案 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>