Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么这个查询会出现未定义的索引错误?_Php_Mysql - Fatal编程技术网

Php 为什么这个查询会出现未定义的索引错误?

Php 为什么这个查询会出现未定义的索引错误?,php,mysql,Php,Mysql,我正在创建一个非常简单的内容管理系统。。。不幸的是,我无法从数据库中检索帖子。我的错误是: 注意:未定义的索引:C:\wamp\www\NightOwlSoftware\index.php中的标题 这是存储数据的工作脚本,证明我的列都在那里 <?php include 'db_connect.php'; include 'functions.php'; sec_session_start(); $title = $_POST['title']; $body = $_POST['body

我正在创建一个非常简单的内容管理系统。。。不幸的是,我无法从数据库中检索帖子。我的错误是:

注意:未定义的索引:C:\wamp\www\NightOwlSoftware\index.php中的标题


这是存储数据的工作脚本,证明我的列都在那里

<?php
include 'db_connect.php';
include 'functions.php';
sec_session_start();
$title = $_POST['title'];
$body = $_POST['body'];
$tag = $_POST['tag'];
$date = date_create()->format('Y-m-d H:i:s');
$sql = "INSERT INTO blog (date, title, body, tag)
VALUES ('$date', '$title', '$body', '$tag')";
mysqli_query($mysqli, $sql);
mysqli_close($mysqli);
header( 'Location: ../index.php' ) ;
?>

如果这是您得到的唯一错误(即日期、标记、正文都可以正常工作),那么您可能在数据库创建中输入了错误的内容,因此实际上没有
标题
列。或者该列可能有不同的名称,如
名称
主题
我不知道我在键入什么
。。。(对不起,我很无聊!)

您得到的是
标题
的未定义索引,因为数组
$row
中没有
标题

我建议您查看数据库结构中的表
blog
,但我也建议您在
while
中执行一些基本数据检查,以确保只呈现存在的内容。看看这个:

<?php
include 'scripts/db_connect.php';
include 'scripts/functions.php';

sec_session_start();
$sql = "SELECT * FROM blog";
$result = mysqli_query($mysqli, $sql);

while($row = mysqli_fetch_array($result)) {
    if (array_key_exists('title', $row) && !empty($row['title'])) {
      echo'<div class="blog"><h3 class="blog">' . $row['title'] . "</h3>";
    }
    if (array_key_exists('date', $row) && !empty($row['date'])) {
      echo '<span class="blog"> Date: ' . $row['date'];
    }
    if (array_key_exists('tag', $row) && !empty($row['tag'])) {
      echo " Tag: " . $row['tag'] . "</span><hr>";
    }
    if (array_key_exists('body', $row) && !empty($row['body'])) {
      echo'<p class="blog">' . $row['body'] . "</p>";
    }
}
?>
'; [代码的其余部分在这里]
如果可以的话,我会把它作为一个注释添加进来,因为这不是一个真正的答案。我同意另一种说法,很可能是DB中的列名与代码中的列名不匹配

在任何情况下,当我遇到这种情况时,您都可以使用调试器或print\r

在while循环中,添加print\r语句-

while($row=mysqli\u fetch\u数组($result)){
打印(行);
回显“.$row['title']”;
回显“日期:”.$row['Date']”。标记:“.$row['Tag']”。
”; echo'

。$row['body']。“

”; }
您的
博客
表是否有一列
标题
?它有。我有一个脚本,可以将表单数据存储到数据库中(它使用相同的列标题)。您得到的值是什么?字段名称是否以大写字母开头?因此问题是列名是大写的。我没有意识到这是一个问题,因为当我将数据存储在数据库中时,我没有将列标题大写,这解决了让我相信这不是问题的错误!非常感谢大家!我在每个回音上都有一个错误,它们都不工作,但所有的列都在那里。不幸的是,我正在完成这个教程:所以我不知道从哪里开始调试这个。我尝试回显$row,但我认为我的语法不对…从阅读开始。然后,找到一个真正有价值的教程。
<?php
include 'scripts/db_connect.php';
include 'scripts/functions.php';

sec_session_start();
$sql = "SELECT * FROM blog";
$result = mysqli_query($mysqli, $sql);

while($row = mysqli_fetch_array($result)) {
    if (array_key_exists('title', $row) && !empty($row['title'])) {
      echo'<div class="blog"><h3 class="blog">' . $row['title'] . "</h3>";
    }
    if (array_key_exists('date', $row) && !empty($row['date'])) {
      echo '<span class="blog"> Date: ' . $row['date'];
    }
    if (array_key_exists('tag', $row) && !empty($row['tag'])) {
      echo " Tag: " . $row['tag'] . "</span><hr>";
    }
    if (array_key_exists('body', $row) && !empty($row['body'])) {
      echo'<p class="blog">' . $row['body'] . "</p>";
    }
}
?>
<?php
include 'scripts/db_connect.php';
include 'scripts/functions.php';

sec_session_start();
$sql = "SELECT * FROM blog";
$result = mysqli_query($mysqli, $sql);

while($row = mysqli_fetch_array($result)) {
  echo '<pre>';
  print_r($row);
  echo '</pre>';

 [ rest of your code goes here]
while($row = mysqli_fetch_array($result)) {
print_r($row);
echo'<div class="blog"><h3 class="blog">' . $row['title'] . "</h3>";
echo'<span class="blog"> Date: ' . $row['date'] . " Tag: " . $row['tag'] . "</span><hr>";
echo'<p class="blog">' . $row['body'] . "</p>";
}