【问题标题】:Not getting value from another sql table没有从另一个 sql 表中获取价值
【发布时间】:2017-05-25 20:53:24
【问题描述】:

您好,我在显示数据时需要考虑两个表格 Table:product_descproduct_idproduct_name 我正在阅读的表格是user_table,我从那里阅读了product_id

我显示数据的代码:

  $db = $registry->get('db');

$query = "SELECT * FROM " . DB_PREFIX . "user_table";
$data = $db->query($query);
//update
if ( $data->num_rows ) { ?>
<div class="">
    <table class="table table-hover">
        <thead>
            <tr>
                <th>SNo.</th>
                <th>User Name</th>
                <th>Product ID</th>
            </tr>
        </thead>
        <tbody>
        <?php $count = 1; ?>
        <?php foreach($data->rows as $k => $v){ ?>
            <tr>
                <td><?php echo $count++ ?></td>
                <td><?php echo $v['username']; ?></td>
                <td><?php echo $v['product_id']; ?></td>
            </tr>
        <?php } ?>
        </tbody>
    </table>
    </div>

我正在尝试实现一些可以显示表 product_desc 中的 product_name 以匹配表 user_table 的 product_id 查询如:SELECTproduct_name from product_desc where product_id = " .$product_id";

【问题讨论】:

    标签: php sql


    【解决方案1】:

    你可以像这样使用sql join:

    $db = $registry->get('db');
    
    $query = "SELECT * FROM " . DB_PREFIX . "user_table LEFT OUTER JOIN " . DB_PREFIX . "product_desc ON " . DB_PREFIX . "user_table.product_id = " . DB_PREFIX . "product_desc.product_id"  ;
    $data = $db->query($query);
    //update
    if ( $data->num_rows ) { ?>
    <div class="">
        <table class="table table-hover">
            <thead>
                <tr>
                    <th>SNo.</th>
                    <th>User Name</th>
                    <th>Product ID</th>
                    <th>Product Name
                </tr>
            </thead>
            <tbody>
            <?php $count = 1; ?>
            <?php foreach($data->rows as $k => $v){ ?>
                <tr>
                    <td><?php echo $count++ ?></td>
                    <td><?php echo $v['username']; ?></td>
                    <td><?php echo $v['product_id']; ?></td>
                    <td><?php echo $v['product_name']; ?></td>
                </tr>
            <?php } ?>
            </tbody>
        </table>
        </div>
    

    【讨论】:

    • 这不起作用你在哪里存储 $product_name 的值
    • 没错,我更新了我的答案。请再试一次。 @raulxbox
    • 这里您要加入两个 product_id 但我希望将 product_name 分配给该 product_id
    • user_table 有我需要的所有东西,但它也有 prodcut_id...product_desc 也有相同的 product_id,我只想要该表中的 product_name,以便我可以在此处显示它
    • 在您的查询中,您是如何获得 product_name 的?
    【解决方案2】:

    如果我对您的理解正确,您有两个表格: user_table - 存储用户名和product_id? product_desc里面存放的是product_id和product_name?

    如果是这种情况,那么您可以将两个表连接起来以生成一个包含您尝试检索的所有信息的结果集,那么按照这些思路应该可以工作:

    "SELECT username, product_name FROM user_table OUTER JOIN product_desc WHERE user_table.product_id = product_desc.product_id";
    

    当然,从您上面提供的代码 sn-p 中,您将希望在选择中添加更多列名称以获取您希望显示的所有数据。

    尝试查看https://dev.mysql.com/doc/refman/5.7/en/join.html 以了解有关加入表格的更多信息

    【讨论】:

    • 如何使用 product_desc 中的值并使用 product_name
    • @raulbox 不知道你的意思是什么?
    猜你喜欢
    • 2016-06-16
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多