Php 未定义索引注意:为什么会发生这种情况,我如何修复它?

Php 未定义索引注意:为什么会发生这种情况,我如何修复它?,php,mysql,Php,Mysql,我的php代码有一个让我发疯的问题。我在这行收到一个未定义的索引通知:echo“\n”。这似乎是一个看似随机的错误。让我困惑的是,显示数据的表单代码与前一行和后一行完全相同,但此代码段会收到错误/通知。最重要的是,数据并没有像应该的那样从数据库中显示出来,即使我在后端查询了数据库,发现数据确实在那里。为什么会发生这种情况?我能做些什么来修复它?我的代码如下: if ($count !== 0) { while($row = mysql_fetch_array($result))

我的php代码有一个让我发疯的问题。我在这行收到一个未定义的索引通知:
echo“\n”。这似乎是一个看似随机的错误。让我困惑的是,显示数据的表单代码与前一行和后一行完全相同,但此代码段会收到错误/通知。最重要的是,数据并没有像应该的那样从数据库中显示出来,即使我在后端查询了数据库,发现数据确实在那里。为什么会发生这种情况?我能做些什么来修复它?我的代码如下:

if ($count !== 0) {
        while($row = mysql_fetch_array($result)) {
            echo "<div class=\"addform\"><form method='get' action=\"update.php\">\n";
            echo "  <input type=\"text\" value=\"".$row['tfid']."\" name=\"column1\">\n";
            echo "  <input type=\"text\" name=\"column2\" value=\"".$row['fname']."\"/>\n";
            echo "  <input type=\"text\" name=\"column3\" value=\"".$row['lname']."\"/>\n";
            echo "  <input type=\"text\" name=\"column3\" value=\"".$row['hha']."\"/>\n"; //there are issues here.
            echo "  <input type=\"text\" name=\"column5\" value=\"".$row['file']."\"/>\n";
            echo "  <input type=\"image\" src=\"images/update.png\" alt=\"Update Row\" class=\"update\" title=\"Update Row\">\n";
            echo "<a href=\"delete.php?column1=".$row['tfid']."\"><img title='Delete Row' alt=\"Delete\" class='del' src='images/delete.png'/></a></form></div>\n";
        }
    echo "</table><br />\n";
} else {
    echo "<b><center>NO DATA</center></b>\n";
}
if($count!==0){
while($row=mysql\u fetch\u数组($result)){
回音“\n”;
回音“\n”;
回音“\n”;
回音“\n”;
echo“\n”//此处存在问题。
回音“\n”;
回音“\n”;
回音“\n”;
}
回显“
\n”; }否则{ 回显“无数据\n”; }
人们能提供的任何提示都会有所帮助

谢谢,
John

检查数据库,确保字段名称与数组的索引匹配(
$row

您的表应该包含以下所有字段:
tfid
fname
lname
hha
文件和
tfid

另外,转义和PHP/echo/HMTL可能会导致视觉噪音,这可能会使您的代码更易于调试:

<?php if ($count !== 0) : ?>
    <?php while($row = mysql_fetch_array($result)): ?>
        <div class="addform">
            <form method="get" action="update.php">
                <input type="text" value="<?php echo $row['tfid'] ?>" name="column1">
                <input type="text" name="column2" value="<?php echo $row['fname'] ?>"/>
                <input type="text" name="column3" value="<?php echo $row['lname'] ?>"/>
                <input type="text" name="column3" value="<?php echo $row['hha'] ?>"/>
                <input type="text" name="column5" value="<?php echo $row['file'] ?>"/>
                <input type="image" src="images/update.png" alt="Update Row" class="update" title="Update Row">;
                <a href="delete.php?column1=<?php echo $row['tfid'] ?>">
                    <img title="Delete Row" alt="Delete" class="del" src="images/delete.png"/>
                </a>
            </form>
        </div>
    <?php endwhile ?>
<?php else: ?>
    <b><center>NO DATA</center></b>
<?php endif ?>


我在你的代码中没有看到这一行。有两行带有
name=“column3”
(在表单中复制名称没有意义),其中一行有
$row['lname']
,另一行有
$row['hha']
。确保
$row
中的索引与从数据库中检索的列匹配。
\n
在单引号中不起作用。最好对PHP字符串使用双引号,对HTML属性使用单引号。