【问题标题】:PHP passing data from 1 page to another pagePHP将数据从一页传递到另一页
【发布时间】:2018-10-15 13:49:30
【问题描述】:

如何将 id 从第一页传递到第二页?

在第一页我查询了我的表格

1st table: userdetails
            userID
            Username
            Email
            Address
            NationalID
            View More

在第 2 页中,我需要将 2 个表混合到 1 个中

2nd table: userimage
imageID
UserID
imageupload

查看更多不是来自我的表,而是来自此代码。

<?php echo "<a href='userdetails.php?id=".$result['userID']."'>"?> View More </td>

下面是我的第二页代码

 $sql = "SELECT userdetails.imageupload
FROM userdetails
INNER JOIN user ON userdetails.memberpostID = user.memberpostID";

  $query = mysqli_query($db,$sql);

这是第二页的输出

<?php
while($result=mysqli_fetch_array($query,MYSQLI_ASSOC))
{
DATA OUTPUT 
} 

但输出总是显示来自用户图像的所有数据

我想问的问题: 我希望如果用户单击 userID 1 上的“查看更多”,它将在我的第二页上显示 userID 详细信息 + imageupload。

【问题讨论】:

  • 您的第二页缺少 where 子句.. 其中 userID 等于 GET['id']

标签: php mysqli


【解决方案1】:

您需要将userID 传递给查询。

$userID = $_GET['id'];

错误的方式

$sql = "SELECT userdetails.imageupload
        FROM userdetails
        INNER JOIN user ON userdetails.memberpostID = user.memberpostID WHERE userdetails.userID='".$userID."'";

正确的方式

$sql = "SELECT userdetails.imageupload
    FROM userdetails
    INNER JOIN user ON userdetails.memberpostID = user.memberpostID WHERE userdetails.userID=:userID";

$query = $db->prepare($sql);
$query->execute(array(':userID' => $userID));

注意:用户参数化查询要从$_GET 请求中传递用户ID,以防止SQL 注入。不要连接变量,而是绑定参数。

【讨论】:

  • 我不明白这一点,对于 GET[userID] ,我应该放在哪里?在 $sql 代码之前?
  • 请检查修改后的答案。
  • 好的解决了这个问题,但是 mysqli_fetch_array() 期望参数 1 是 mysqli_result, boolean given
  • 我的错。我错过了 $_GET 参数名称。检查精炼的答案。
  • 您通过参数化参数而不是 XSS 来防止 SQL 注入。
猜你喜欢
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-24
  • 2020-11-20
相关资源
最近更新 更多