【问题标题】:Show different data in webpage when clicked depending on the ID根据ID点击时在网页中显示不同的数据
【发布时间】:2019-02-20 00:17:14
【问题描述】:

我试图在单击链接时根据故事 ID 显示用户数据。但是,该页面每次都显示来自数据库中一行的相同数据(网络链接显示不同的 ID 'php?story_id=10' 等,但它仍然显示相同的数据。

我有这个功能:

function displayStories(){
include('conn/conn.php');

$queryread = "SELECT Users.ID, Users.FirstName, Stories.Age, Stories.Story, 
Stories.Image FROM `Stories` INNER JOIN `Users` ON Users.ID = Stories.User_ID";


$result = mysqli_query($conn, $queryread) or die(mysqli_error($conn));

if(mysqli_num_rows($result) > 0 ){

while($row = mysqli_fetch_assoc($result)){

$name = $row["FirstName"];
$idData = $row["ID"];
$age = $row["Age"];
$story = $row["Story"];
$limit = mb_strimwidth($story, 0, 300, "...");


echo 


"<div class='stories'>
          <a href='storyDis.php?story_id=$idData'>
          <h5><b>$name</b></h5></a>
          <p><b>$age years old</b></p>
          <p>$limit</p>

</div>


";

}
}
mysqli_close($conn); 
}

这个查询来显示数据(在 HTML 中调用的变量):

include('conn/conn.php');

$str = htmlentities($_GET["story_id"]);

$query = "SELECT * "
           . "FROM Stories "
           . "WHERE ID='$str'";

$result = mysqli_query($conn, $query) or die(mysqli_error($conn));

$queryread = "SELECT Users.FirstName, Stories.Age, Stories.Story, 
Stories.Image FROM `Stories` INNER JOIN `Users` ON Users.ID = Stories.User_ID";


$result1 = mysqli_query($conn, $queryread) or die(mysqli_error($conn));

if(mysqli_num_rows($result1) > 0 ){

    while($row = mysqli_fetch_assoc($result1)){

        $name = $row["FirstName"];
        $age = $row["Age"];
        $story = $row["Story"];
        $image = $row["Image"];

}
}
mysqli_close($conn); 
?>

编辑

当我只需要一个时有两个查询。

$str = htmlentities($_GET["story_id"]);


$queryread = "SELECT Stories.ID, Users.FirstName, Stories.Age, Stories.Story, Stories.Image FROM `Stories` INNER JOIN `Users` ON Users.ID = Stories.User_ID 
WHERE Stories.ID='$str'";


$result1 = mysqli_query($conn, $queryread) or die(mysqli_error($conn));

if(mysqli_num_rows($result1) > 0 ){

    while($row = mysqli_fetch_assoc($result1)){

        $name = $row["FirstName"];
        $age = $row["Age"];
        $story = $row["Story"];
        $image = $row["Image"];

}
}
mysqli_close($conn); 
?>       

【问题讨论】:

  • 那么,你将指定ID的行读入$result,然后什么都不做?

标签: php mysql database post get


【解决方案1】:

您正在从 (result1) 而不是 (result) 读取数据。

换这个while($row = mysqli_fetch_assoc($result1)){

while($row = mysqli_fetch_assoc($result)){

然后它就会对你很好。

【讨论】:

  • 它现在显示正确的数据,谢谢!但是,现在它说名字(在用户表中)是未定义的索引,有什么想法吗?
  • 意识到当我不需要它们时,我有两个查询,您的推动是正确的方向,谢谢。
猜你喜欢
  • 2013-08-26
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多