Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP比较来自不同数据库表的两个变量_Php_Sql - Fatal编程技术网

使用PHP比较来自不同数据库表的两个变量

使用PHP比较来自不同数据库表的两个变量,php,sql,Php,Sql,我的数据库中有两个表。第一个“产品”有两行——“id”和“title”,并在服务器上绑定了一个图像。第二个“模板”有三行——“id”、“title”和“category”,还绑定了一个图像。我想要的是,当“产品”中的“标题”和“模板”中的“类别”相同时,只显示属于匹配类别的图像。例如,如果标题为“wine”,则只应显示绑定到“wine”类别的图片 <!--PRODUCTS--> <h4>Choose Product</h4> <div id="produ

我的数据库中有两个表。第一个“产品”有两行——“id”和“title”,并在服务器上绑定了一个图像。第二个“模板”有三行——“id”、“title”和“category”,还绑定了一个图像。我想要的是,当“产品”中的“标题”和“模板”中的“类别”相同时,只显示属于匹配类别的图像。例如,如果标题为“wine”,则只应显示绑定到“wine”类别的图片

<!--PRODUCTS-->
<h4>Choose Product</h4>
<div id="products" class="row">
<?php
while ($one = $products->fetch()) {
    ?>
    <div class="col-xs-3 col-md-2">
        <a class="thumbnail"  data-id="<?= $one['id'] ?>">
            <img src="/files/products/<?= $one['id'] ?>.jpg" alt="<?= $one['title'] ?>">
        </a>
    </div>
    <?php
}
?>
</div>

<!--TEMPLATES-->

<h4>Choose Template</h4>
<div id="templates" class="row">
<?php
while ($one = $templates->fetch()) {
    ?>
        <div class="col-xs-3 col-md-2">
            <a class="thumbnail" data-price="<?= $one['price'] ?>" data-id="<?= $one['id'] ?>">
                <img src="/files/templates/example/<?= $one['id'] ?>.jpg" alt="<?= $one['title'] ?>">
            </a>
        </div>
<?php
}
?>

选择产品
">
选择模板
">


现在,模板/示例文件中的每一张图片都会出现。有没有一种方法可以在不改变代码的情况下实现呢?我不知道问题的标题是否正确,如果需要,请将其编辑为更合适的标题。

我已经有一段时间没有使用MySQL了,但我认为您正在查找的查询类型如下:

SELECT
    t.image
FROM
    templates AS t
JOIN
    products AS p
ON
    t.category = p.title
WHERE
    t.category = 'wine'
LIMIT 1;

为什么不使用Join?你能详细说明一下,在哪里添加这些行吗?我的“产品”和“模板”已经在文件“home.php”中定义,如下:$products=$DB->query('SELECT*FROM products')$模板=$DB->query('SELECT*fromtemplates');这是一个查询,因此在您的案例中使用它:
imageQuery=$DB->query('SELECT t.image…LIMIT 1')SQL本身就是一种完整的语言,而不仅仅是PHP用来存储东西的随机工具。您应该进一步了解SQL本身,因为它非常方便。存储过程和触发器之类的东西可以使开发在未来变得更容易、更安全。