【问题标题】:Php Table to display records with specific IDPhp Table 显示具有特定 ID 的记录
【发布时间】:2019-10-21 00:00:43
【问题描述】:

我正在尝试根据发送到另一个页面的 id 来执行特定查询,并生成一个属于特定人员的项目表。 我有 2 个不同的表,一个列出 id 的人员和主键的人员表。在第二张表车辆上,我有一个名为 vehicleid 的主键和一个作为 person id 的 id。该表不过滤对特定人员的响应。在菜单栏中,我有 upd** 和人的 id 示例 upd=15,我试图让 php 工作以生成仅属于该人的车辆列表的每一种方式都失败了。我不知道自己看过多少教程和博客。

我的代码开头的示例。 ***

<?php require "config/config.php"; ?> 

<?php if(isset($_GET['upd'])){ $id = $_GET['upd']; $query = "SELECT * FROM vehicles 
WHERE id=$id"; $fire = mysqli_query($con,$query) or die("Can not fetch the data.".mysqli_error($con)); $user = mysqli_fetch_assoc($fire); } ?>

【问题讨论】:

  • ***我的代码开头的示例。 ***
  • 嗯,是的,没有你的代码真的很难说。顺便说一句,您可以编辑您的问题并将相关数据粘贴到那里,而不是在 cmets 中。谢谢
  • 0){ while($user = mysqli_fetch_assoc($fire)){ ?>
    Year
  • 不要把代码放在cmets里,把它放在问题里。使用代码格式化选项使其可读。
  • 您的代码易受 SQL 注入攻击。您应该使用准备好的语句。

标签: php mysql sql


【解决方案1】:
Select p.name, p.other_person_info, v.car_make, v.car_model From person as p 
Left Join vehicles ON p.id = v.id WHERE p.id = '15'

换句话说,LEFT JOIN 返回左表中的所有行,而不管左表中的行是否与右表中的行匹配。如果没有匹配,则右表中的行的列将包含 NULL。因此,人表示为 p,车辆表表示为 v,它只会在您的人 id 等于 15 时输出

【讨论】:

    【解决方案2】:

    您很容易受到 SQL 注入的攻击。我建议学习 PDO。

    关于你的问题。以下是代码:

    <?php
      include('DBHOST','localhost'); //if you are using localhost
      include('DBNAME',''dbname); //your dbname
      include('DBUSER','root'); //username of your localhost
      include('DBPASS','yourpassword');
    
      try
       {
         $conn = new PDO("mysql: host=".DBHOST.";charset=utf8mb4; dbname=".DBNAME, DBUSER, DBPASS);
         $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
         $qry = "SELECT * FROM tbl_yourtable";
         $stmt = $conn->prepare($qry);
         $stmt->execute();
         $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
         }
         catch(PDOException $e)
         {
          die("Error Connection".$e->getMessage());
         }
         ?>
    

    然后在你的桌子上:

         <?php
          foreach($result as $value)
          {
           echo '<tr>
               <td>' .$value['id']. '</td>
               <td>' .$value['name']. '</td>';
          }
          ?>
    

    就这样。

    【讨论】:

    • 您的示例没有显示 PDO 的任何好处,也没有实现与 OP 中相同的算法,这使得它相当不可用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2018-02-07
    • 2021-07-22
    相关资源
    最近更新 更多