我正在进行两个查询,一个查询工作正常……回显所有正确的列值。第二个显示所有数据var_dump,但始终显示未定义索引。我不明白我做错了什么。
我尝试通过开发人员的建议创建一个数组来定义索引,但这给了我零结果
$navpage = array();
$navpage['splash_id']='';
等,但是显然会导致空白处...我不知道为什么这是我被导致的解决方案。
错误代码说:注意:未定义的索引:splash_id在...
我知道有很多这样的问题,其中大多数都在谈论他们正在处理的电子邮件表单,而我只是想从数据库中输出数据。
这是我的查询文件arts.php
<?php
require 'scripts/start.php';
$pages = $db->query("SELECT article_id, department, title, article_link, shortdesc, img_meta, live FROM content WHERE department='Arts' AND live='Yes'
")->fetchAll(PDO::FETCH_ASSOC);
$navpage = $db->query("SELECT splash_id, page, live, big_message, img1, text1, link1, expdate FROM splash WHERE page='arts' AND live='Yes'
")->fetchAll(PDO::FETCH_ASSOC);
require VIEW_ROOT . '/artpages.php';
?>
我在其中回显列-text1之类的页面
<?php require VIEW_ROOT . '/department/arts_header.php';
?>
<div id="major">
<div id="so" class="mainimage">
<div class="mainimage"><img src="cms_img/header/<?php echo $navpage['img1']?>" class="splashimage"></div>
</div>
<div id="contentbox">
<div id="middle"><div id="articleheadline" class="titlefont"><?php echo $navpage['text1']?></div>
<?php if (empty($pages)): ?>
<p class="textfont">Sorry, there are no articles on this page.</p>
<?php else: ?>
<?php foreach($pages as $page): ?>
<div class="article_container">
<a href="<?php echo BASE_URL; ?>/artsarticle.php?page=<?php echo $page['article_link']?>"><div class="article_promo"><img src="cms_img/<?php echo escape($page['img_meta']) ?>"class="promofit"></div></a>
<div class="article_title"><span class="article_title_font"><?php echo $page['title']?></span></div>
<div class="article_desc"><span class="article_desc_font"><?php echo $page['shortdesc']?></span></div>
</div><?php endforeach; ?>
<?php endif; ?>
</div></div></div></div>
<?php
require VIEW_ROOT . '/templates/footer.php';
?>
我希望$navpage
的回波像$page
那样填充。
答案 0 :(得分:0)
因为您使用->fetchAll(PDO::FETCH_ASSOC)
。它的返回数组navpage
所以您必须对$navpage[0]['img1']
和$navpage[0]['text1']
进行编码
在使用!empty($navpage)
之前请注意检查$navpage[0]
答案 1 :(得分:0)
全部获取都会得到一个多数组结果,因此您需要像在$ pages中那样使用foreach循环,或者使用下面的代码仅获取一个数组。
$dbh = new PDO("SELECT article_id, department, title, article_link, shortdesc, img_meta, live FROM content WHERE department='Arts' AND live='Yes'");
$stmt = $dbh->prepare("SELECT name FROM mytable WHERE id=4 LIMIT 1");
$stmt->execute();
$navpage= $stmt->fetch();
答案 2 :(得分:0)
瑞安·恩吉姆(Ryan Nghiem)精明地指出了答案。谢谢!
先列出$,然后再列出[0] ['']
“ class =” splashimage“>更改为” class =“ splashimage”>