使用函数查询数据库


Using a function to query a database

我有一个页面,我真的很想得到一些帮助/建议,以创建一种更好的方法/函数来从另一个表中调用信息。

目前,我的代码如下所示:[我知道这是不推荐使用的SQL,我真的很想为此做一些不错的SQLi。]

<?
$menuid = "100";
$imageid = "50";
// ** Talk to 'imagedirectory' table
mysql_select_db($database_db, $BASEdb);
$query_displayimage = "SELECT * FROM imagedirectory WHERE menuid = ".$menuid." AND imageid = ".$imageid."";
$displayimage = mysql_query($query_displayimage, $BASEdb) or die(mysql_error());
$row_displayimage= mysql_fetch_assoc($displayimage);
?>
<img src="/images/assets/<?php echo $menuid; ?>-<?php echo $imageid; ?>-<?php echo $row_displayimage['urlslug']; ?>.jpg" alt="<?php echo $row_displayimage['alttext']; ?>" />

我认为必须有更好的方法,因为如果一页上有10个图像,这是一种非常激烈的方法

由于您似乎知道mysql_*已被弃用,我假设您已经阅读了,并使用了mysqli_*

您不必每次都查询数据库。mysqli_query()返回一个mysqli_result,您可以对其进行迭代,并使用mysqli_fetch_assoc()等函数进行读取。这里有一种方法:

<?php
// store your query in a variable.
$query_displayimage = "SELECT * FROM imagedirectory";
// query the database.
$displayimage = mysqli_query($query_displayimage, $BASEdb);
// check for errors.
$dbErrors = mysqli_error($BASEdb);
if (count($dbErrors))
{
    print_r($dbErrors);
    die();
}
// iterate over the returned resource.
while ($row_displayimage = mysql_fetch_assoc($displayimage))
{
    echo '<img src="/images/assets/' . $menuid . '-' . $imageid . '-' . $row_displayimage['urlslug'] . '.jpg" alt="' . $row_displayimage['alttext'] . '" />';
}
?>

希望能有所帮助。


编辑:

您也可以在函数中使用此代码。例如:

<?php
function printImage($menuid, $imageid)
{
    $query_displayimage = "SELECT * FROM imagedirectory";
    $displayimage = mysqli_query($query_displayimage, $BASEdb);
    $dbErrors = mysqli_error($BASEdb);
    if (count($dbErrors))
    {
        print_r($dbErrors);
        die();
    }
    
    if ($row_displayimage = mysql_fetch_assoc($displayimage))
    {
        echo '<img src="/images/assets/' . $menuid . '-' . $imageid . '-' . $row_displayimage['urlslug'] . '.jpg" alt="' . $row_displayimage['alttext'] . '" />';
    }
    else    // if there is a problem getting the image
    {
        echo 'Error getting image.';
    }
}
?>

在HTML的其他地方,您可以执行以下操作:

<div>
    And here is an image!
    <?php printImage(20, 50); ?>
</div>