当前位置: 首页 > 知识库问答 >
问题:

PHP使用PDO和两个数据表

王景山
2023-03-14

device_transactions表中没有相应的记录,或者在device_transactions表中有相应的记录时,我希望状态列显示值“自由”returned_date空白字段

device\u transactions表在devices表中没有相应的记录时,如何打印第4行?

这两个数据表

表设备:

表1设备\u事务:

<table id="myTable">
        <thead>
            <tr>
                <th>No</th>
                <th>Name</th>
                <th>Status</th>
            </tr>
        </thead>
        <tbody> 
            <?php
                    $sql = $conn->prepare("SELECT devices.id, devices.name, device_transactions.returned_date 
                         FROM devices, device_transactions WHERE devices.id = device_transactions.device_id ");
                    $sql->execute();
                    $result = $sql->setFetchMode(PDO::FETCH_ASSOC);
                    foreach ($sql->fetchAll() as $row) { ?>
                    <tr>
                            <td><?php echo $row['id']; ?></td>
                            <td><?php echo $row['name']; ?></td>
                            <td><?php                             
                                if($row['returned_date'] !== null ){
                                    echo "free";
                                }
                                else{
                                    echo "borrowed";
                                }
                            ?></td>
                    </tr>
                    <?php } 
            ?>
        </tbody>    
                
    </table>

共有2个答案

施昊然
2023-03-14

只需使用简单的左连接,您将获得所有记录:

SELECT d.id as deviceid, d.name as devicename, c.returned_date as returndate
FROM device d
LEFT JOIN device_transactions c ON c.device_id = d.id;

看到它在这里工作了吗

https://dbfiddle.uk/?rdbms=mysql_8.0

赵英范
2023-03-14

您希望使用左连接,而不是来自设备、设备\u事务的(这是一个内部连接)。

SELECT devices.id, devices.name, device_transactions.returned_date 
FROM devices
LEFT JOIN device_transactions ON devices.id = device_transactions.device_id

 类似资料:
  • 本文向大家介绍PHP使用PDO连接ACCESS数据库,包括了PHP使用PDO连接ACCESS数据库的使用技巧和注意事项,需要的朋友参考一下 1,参考W3CSHOOL http://www.w3cschool.cc/php/php-pdo.html 2,连接access 以上就是简单的实用php的pdo方式连接ACCESS数据库的方法了,希望大家能够喜欢。

  • 问题内容: 我不尝试使用循环。我只是从一行的一列中获取一个值。通过以下代码,我得到了想要的东西,但是使用PDO必须有一种更简单的方法。 看起来好像太多行无法从数据库中获得一个值。:\ 问题答案: 您可以为此创建一个函数,并在每次需要单个值时调用该函数 然后,您可以简单地执行以下操作: 因此,您只需创建一次该函数,即可将其重新用于具有不同列名的不同表。 社区编辑: 出于安全原因,请避免将字符串连接以

  • 我想从具有相同user_id的两个表中获取所有数据,但我不知道要使用什么类型的联接,我想确定查询的语法。 “日程”表:

  • 本文向大家介绍PHP PDO将数据插入表,包括了PHP PDO将数据插入表的使用技巧和注意事项,需要的朋友参考一下 插入数据非常简单,因为我们已经知道如何使用PDO与mysql(MariaDB)建立连接?我们可以使用与框架相同的代码,然后编辑$sql查询以插入数据而不是选择数据。 PHP代码使用PDO将数据插入表 输出结果 这样,我们可以使用PDO与MySQL进行交互,以轻松地向数据库表中添加新记

  • 本文向大家介绍php使用PDO操作MySQL数据库实例,包括了php使用PDO操作MySQL数据库实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php使用PDO操作MySQL数据库的方法。分享给大家供大家参考。具体分析如下: PDO是mysql数据库操作的一个公用类,我们不需要进行自定类就可以直接使用pdo来操作数据库,但是在php默认配置中pdo是未开启所以我们必须先在php.in

  • 本文向大家介绍php使用pdo连接mssql server数据库实例,包括了php使用pdo连接mssql server数据库实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了利用php的pdo来连接微软的mssql server数据库的方法,分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的PHP程序设计有所帮助。

  • 我在PHP(PDO)中遇到了这种情况; 我正在实现一个从MySql中检索数据的方法,并且做得很好,但问题是重复的数据恢复为关键骨,没有任何值,但其他数据附加更多,留下脚本和图像以了解更多细节; data.php 可变检验 json重复 预期结果

  • 问题内容: PDO显然无法计算从选择查询返回的行数(具有变量)。 有没有办法做到这一点,而无需使用? 问题答案: 根据手册,有一种 方法;但不应使用 (引用) : 对于大多数数据库, 不返回受语句影响的行数。 而是使用 发出与您的预期 语句相同的谓词的语句,然后使用 检索将返回的行数。 然后,您的应用程序可以执行正确的操作。 如果您已经有一个记录集,并且想知道其中有多少行,则必须使用一种方法来获取