我正在尝试首先检查项目是否存在,然后是否存在 - 我使用while循环获取项目信息并将其输出到智能模板上。
如果ID不存在,此代码会将我重定向到“projects.php”,但如果它确实存在,那么它只是什么都不做。我究竟做错了什么?如果你能指引我走正确的路,我将不胜感激。
谢谢!
if(isset($_GET['id'])) {
try {
$stmt = $db->prepare('SELECT * FROM projects WHERE slug = :slug');
$stmt->execute(array(':slug' => $_GET['id']));
$id = $stmt->fetchColumn();
if ($id) {
while($row = $stmt->fetch()) {
$projects[] = $row;
$smarty->assign('projects',$projects);
}
} else {
header("Location: /projects.php");
exit();
}
} catch(PDOException $e) {
die ('ERROR: ' . $e->getMessage());
}
}
答案 0 :(得分:0)
你在while循环中将变量传递给Smarty,它应该在while循环之后:
$projects = array();
while($row = $stmt->fetch()) {
$projects[] = $row;
}
$smarty->assign('projects',$projects);
答案 1 :(得分:-1)
你写的代码太多了。 PHP只是扼杀金额,无法进一步处理
if(isset($_GET['id'])) {
$stmt = $db->prepare('SELECT * FROM projects WHERE slug = ?');
$stmt->execute(array($_GET['id']));
$projects = $stmt->fetchAll();
if ($projects) {
$smarty->assign('projects',$projects);
} else {
header("Location: /projects.php");
exit();
}
}
是您需要的所有代码