gpt4 book ai didi

php - 数据库查询(带 PHP 的 MySQL)未显示在 DOM 中

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:38 24 4
gpt4 key购买 nike

我正在尝试在 MySQL 中使用联结表查询多对多关系,以显示哪些“工作区”有多少“成员”订阅了它。

查询本身有效,在 PHPMyAdmin 中进行了尝试和测试,并返回了预期的结果。然而。在实际的 PHP 代码中使用此查询并执行它后,在为 DOM 准备好结果的循环中没有显示!我什至放了一点 echo 来查看服务器是否正在执行该循环。看来不是。就好像查询检索到零结果一样,即使循环之前的 var_dump 显示实际上正在从服务器接收数据。

我不是这个程序的新手,我已经成功完成了很多次,但是这个真的不喜欢我。

为什么不显示?

配置代码

try {

// Create PDO connection
$db = new PDO("mysql:host=" . DB_HOST . "; dbname=" . DB_NAME, DB_USER, DB_PW);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch(PDOException $e) {
// Show Error
echo '<p class="bg-danger">' . $e->getMessage() . '</p>';
exit;
};
?>

PHP代码:

        <?php
// Show and list threads
try {
// Prepare and gather Threads from DB
$stmt = $db->prepare('SELECT work.*, sub.*, mem.username, mem.avatar FROM TEAM_workspaces AS work LEFT JOIN TEAM_subscriptions_JCN AS sub ON work.workspaceID = sub.workspacesID LEFT JOIN TEAM_members AS mem ON sub.memberID = mem.memberID WHERE mem.memberID = :memberID');
$stmt->execute(array(':memberID' => $_SESSION['memberID']));

// This Block is Debugging Code to see what is happening
echo '<br><br>';
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
echo '<br><br>';
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($row);

// Cycle Database Records for Subscribed Workspaces
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo 'Hello, is this even being Parsed??'; // Added to see if the Loop is being executed at all
echo '<div class="row"><div class="col-xs-12 col-sm-12 col-md-12"><a href="workspace-single.php?workspaceID=' . $row['workspaceID'] . '">';
echo '<div class="col-md-10"><h2>' . $row['title'] . '</h2></div>';
echo '</a></div></div>';
}
} catch(PDOException $e) {
echo '<p class="bg-danger">' . $e->getMessage() . '</p>';
}
?>

渲染内容的截图:

Screenshot of Rendered PHP

数据库的结果(更易于阅读)

Easier to Read MySQL Query Completed within PHPMyAdmin

程序代码的原始(工作)版本

作为开始的基础,我从另一个类似的项目中复制了代码。我已将其粘贴在下方以提供更多情况图片。

来自另一个项目的(正在运行的)PHP 代码

                <?php
// Show and list threads
try {
// Prepare and gather Threads from DB
$stmt = $db->prepare('SELECT threadID, title, description, author, date, imagepath FROM FORUM_threads');
$stmt->execute();
// $rows = $stmt->fetch(PDO::FETCH_NUM);

if( isset($row['imagepath']) ) {
$imagepath = $row['imagepath'];
} else {
$imagepath = 'default.bmp';
}

// Cycle Database Records
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo '<div class="row"><div class="col-xs-12 col-sm-12 col-md-12"><a href="thread.php?threadID=' . $row['threadID'] . '">';
echo '<div class="col-md-2 col-sm-2 col-sx-4 pull-left"><img class="thread-image" src="uploads/' . $imagepath . '" alt="Avatar for the thread ' . $row['title'] . '" /></div>';
echo '<div class="col-md-10 col-sm-10 col-sx-12"><h2>' . $row['title'] . '</h2></div></a>';
echo '<div class="col-md-10 col-sm-10 col-sx-12">' . $row['date'] . '</div>';
echo '<div class="col-md-10 col-sm-10 col-sx-12">' . $row['description'] . '</div>';
echo '<div class="col-md-10 col-sm-10 col-sx-12"><a class="btn btn-primary btn-block btn-md" href="compose.php?type=message&threadID=' . $row['threadID'] . '">New Message</a></div>';
echo '</div></div>';
}
} catch(PDOException $e) {
echo '<p class="bg-danger">' . $e->getMessage() . '</p>';
}
?>

最佳答案

$stmt->fetchAll(PDO::FETCH_ASSOC) 消耗您的整个结果集。

随后的 $row = $stmt->fetch(PDO::FETCH_ASSOC)) 操作试图从已经使用的结果集中获取另一行,因此什么也不获取(就像结果集为空)。

关于php - 数据库查询(带 PHP 的 MySQL)未显示在 DOM 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35444403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com