php - var_dump 显示数据,但 echo 说未定义索引 - 不知所措

标签 php mysql

我正在进行两个查询,其中一个工作正常...回显所有正确的列值。第二个显示了 var_dump 的所有数据,但一直显示未定义索引。我不明白我做错了什么。

我尝试通过开发人员的建议创建一个数组来定义索引,但这给了我零结果

$navpage = array();
$navpage['splash_id']='';

等等,但这显然会导致空白......我不知道为什么这是我得到的解决方案。

Error code says : Notice: Undefined index: splash_id in...

我知道有很多这样的问题,其中大多数都在谈论他们正在处理的电子邮件表单,而我只是想从数据库中输出数据。

这是我的查询文件 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';
?>

我回显诸如“column - 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 的 echo 能够像 $page 那样填充。

最佳答案

Fetch all 会得到多个数组结果,因此您需要像在 $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(); 

关于php - var_dump 显示数据,但 echo 说未定义索引 - 不知所措,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56122714/

相关文章:

mysql - 查看外键的依赖树

c# - 如何将行插入到表适配器提交和更新datagridview?

php - 我的主键 mysql 中的 0 值

PHP Mysqli Query 从表数据查询执行

php - 无法使用 PHP 和 MySQL 中的 SQL 查询获取多个数据

php - MySQL:验证费率范围内的日期范围(laravel 可选)

php - 使用where子句选择单行时,表的大小是否会影响速度

JavaScript 中的 PHP 字符串

php - 我应该转义值两次吗?

mysql - 按特定顺序选择动态行值作为列名