我目前正在设置我的投资组合,但我不断收到以下错误:
注意:未定义的属性:第54行的/Applications/MAMP/htdocs/year_3/Site_2/portfolio/project.php中的stdClass :: $ media_type
注意:未定义的属性:第59行的/Applications/MAMP/htdocs/year_3/Site_2/portfolio/project.php中的stdClass :: $ media_type 1.点
注意:未定义的属性:第54行的/Applications/MAMP/htdocs/year_3/Site_2/portfolio/project.php中的stdClass :: $ media_type
注意:未定义的属性:第59行的/Applications/MAMP/htdocs/year_3/Site_2/portfolio/project.php中的stdClass :: $ media_type
这是代码:
$id = $_GET['id'];
if (!is_numeric($id)) {
//die('DONT BE A JERK');
header('Location: index.php');
}
require_once('includes/config.php');
require_once('includes/lib.php');
$db = dbConnect();
$query = "
SELECT projects.* FROM projects
WHERE projects.id = '$id'
";
$project = dbSelect($db, $query);
$project = $project[0];
$query = "
SELECT media.* FROM media
WHERE media.project_id = '$project->id'
ORDER BY media.rank ASC
";
$media = dbSelect($db, $query);
$project->media = $media;
dbClose($db);
?>
<!DOCTYPE html>
<html>
<head>
<title>Missy Skae</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1><?=$project->title;?></h1>
<h2><?=$project->date;?></h2>
<p><?=$project->description;?></p>
<?
foreach($project->media as $media) {
?>
<div class="media">
此后的第54行。
<?
if ($media->media_type == 'image') {
?>
<img src="media/<?=$media->filename;?>">
<p><?=$media->imagenumber;?></p>
<?
} elseif ($media->media_type == 'video') {
// video
}
?>
<p><?=$media->imagedescription;?></p>
</div>
<?
}
?>
</body>
</html>
有人有什么想法吗?
答案 0 :(得分:1)
错:
$query = "
SELECT media.* FROM media
WHERE media.project_id = '$project->id'
ORDER BY media.rank ASC
";
右:
$query = "
SELECT media.* FROM media
WHERE media.project_id = '" . $project->id . "'
ORDER BY media.rank ASC
";
更多:
$project = dbSelect($db, $query);
$project = $project[0];
确保您在此处获得正确的值。 在我看来,没有结果或结果以不同的形式(数组)返回。
header('Location: index.php');
如果您不在其后使用exit;
,则脚本会继续执行。
不应使用短打开的标签,默认情况下它们在大多数服务器上都是关闭的:
<?=$media->imagedescription;?>
<?php echo $media->imagedescription; ?>
查看PDO
和准备好的陈述。更清洁,更易于维护: - )
答案 1 :(得分:1)
将$media->media_type
的所有实例更改为$media->mediatype
以匹配数据库中的列。那应该可以解决你的问题。我同意@DanFromGermany您应该考虑使用PDO / Prepared Statements与您的数据库进行交互。