php - MYSQL查询优化

标签 php mysql sql

我遇到的问题我会尽我所能描述它....用户选择三个选项,图像出现在屏幕上,他们所做的选择被发送并存储在数据库中,PHP 函数below 然后找到选择的图像并将它们作为变量返回,这样他们所做的最新选择和与选择相对应的图像在页面刷新后仍显示在占位符中,我想将下面的 SQL 代码合并到一个查询,但我需要它,所以在找到 $driver1 的数据的地方,它被放置到 $image1 变量中,同样对于 $driver2 到 $image2,$driver3 到 $img3,所以我可以将它们返回到页面并回显正确的正确占位符中的图像。他们所做的选择的图像需要出现在他们最初出现的占位符中。它现在工作正常,但我确信 SQL 查询可以缩短为一个?以节省代码行数。

我在下面发布的代码是主要的重要部分,希望您能理解我的要求。

任何帮助都会很棒,谢谢。

//HTML CODE
<?php
list($img1, $img2, $img3) = checkteam();
?>

<img onclick="return removedriver1(this)" id="advert" src="images/delete.gif"  border="0"/>
    <img id="placeholder1" src="<?php echo "$img1";?>" alt="" />
<img onclick="return removedriver2(this)" id="advert src="images/delete.gif" border="0"/>
    <img id="placeholder2" src="<?php echo "$img2";?>" alt="" />
<img onclick="return removedriver3(this)" id="advert" src="images/delete.gif" border="0"/>
        <img id="placeholder3" src="<?php echo "$img3";?>" alt="" />


//PHP CODE
function checkteam(){

$sql="SELECT image FROM drivers WHERE drivers_id = '$driver1'"; 
                $result=mysql_query($sql);
                $row = mysql_fetch_array($result);

                $image1=$row[image];

$sql="SELECT image FROM drivers WHERE drivers_id = '$driver2'"; 
                $result=mysql_query($sql);
                $row = mysql_fetch_array($result);

                $image2=$row[image];

$sql="SELECT image FROM drivers WHERE drivers_id = '$driver3'"; 
                $result=mysql_query($sql);
                $row = mysql_fetch_array($result);

                $image3=$row[image];

return array ($image1, $image2, $image3);
}

最佳答案

在我看来,最好的方法是将它们全部粘贴到一个关联数组中:

$sql = "SELECT drivers_id, image FROM drivers WHERE drivers_id IN ($driver1, $driver2, $driver3)";
$result = mysql_query($sql);
$images = array();
while (($row = mysql_fetch_assoc($result)) {
    $images[$row["drivers_id"]] = $row["image"];
}

然后您可以使用 $images[$driver1] 等打印出适当的图像。

关于php - MYSQL查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7155027/

相关文章:

MySQL Workbench 无法在 Mac 上打开

php - yii, 如何更改 Cmenu 上的文本颜色

php - Zend Mail - 电子邮件未发送

php - foreach 和 while 循环使用数组来复制数据

sql - SQL Server 和 mysql 上的增量备份

Sql Server 2008 快速递归查询

mysql - 选择分组到特定标识符的值

php - 如何根据给定的年数生成一周到一周的日期

mysql - MySQL 语句中的条件联合

php - 使用php远程连接MYSQL数据库