Php 使用函数查询数据库

Php 使用函数查询数据库,php,Php,我有一个页面,我真的希望得到一些帮助/建议,以创建一种更好的方式/功能,从另一个表中调用信息 目前,我的代码如下所示: [我知道这是不推荐的SQL,我真的很想为此做一些好的SQLi。] <? $menuid = "100"; $imageid = "50"; // ** Talk to 'imagedirectory' table mysql_select_db($database_db, $BASEdb); $query_displayimage = "SELECT * FROM i

我有一个页面,我真的希望得到一些帮助/建议,以创建一种更好的方式/功能,从另一个表中调用信息

目前,我的代码如下所示: [我知道这是不推荐的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']; ?>" />

--.jpg“alt=”“/>

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

既然你似乎知道
mysql.*
不受欢迎,我假设你已经读过了,正在使用
mysqli.*

您不必每次都查询数据库。
mysqli\u query()
返回一个
mysqli\u结果
,您可以使用
mysqli\u fetch\u 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>

这是一张图片!

您打算从这个问题中获得什么?当您已经知道mysql_*()函数已被弃用,使用MySQLi是一种方式,你可以得到你需要的一切来教育自己。例如:hi@icefyre-我感谢你的评论,我相信我会去谷歌,在SQLi中复制上面的代码,我想不会有太多麻烦。我不想做的事情是复制那些代码。没有o通过某种函数更好地实现这一点,尽管我真的不知道从哪里开始。我想要的是逻辑方面的一些帮助。我理解。但是,你只提供了一个代码,没有任何逻辑信息。你的脚本的目的是什么?我可能会稍微调整我的问题,使其更具体。虽然本质上我是这样做的通过上面的代码从“imagedirectory”表中获取“urlslug”和“alttext”字段以显示图像。问题是,如果我在一个页面上有10个图像,我必须重复上面的代码10x,我希望有它,这样我就有了一个函数,我可以轻松地告诉请求“MENUD”和“imageid”,它会输出一个结果:a对我的问题缺乏细节/方向表示歉意。