【问题标题】:How to solve "Notice: Undefined index"? [duplicate]如何解决“注意:未定义的索引”? [复制]
【发布时间】:2026-01-20 19:55:01
【问题描述】:

我的 PHP 代码有一个问题,说“注意:未定义的索引”我确信它非常简单,因为我是初学者,所以我没有康复到底出了什么问题,所以请帮助我。

This is my form

<form action="search.php" method="post">
Search by Name From Database:<br>
<input type="text" name="search" id="snacks"/><br>
<input type="submit" value="Search"/>
</form>

这是php代码

<?php
 $search_term = $_POST["search"];
 mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error());
 mysql_select_db("mydata");

if(empty($search_term))
{
    echo ("<b>Search Not Found. .</b>");
}
else
{
$result1= mysql_query( "SELECT * FROM loc WHERE name LIKE '%$search_term%' " ) 
or die("SELECT Error: ".mysql_error()); 

$count= mysql_num_rows($result1);

if ($count == 0)
{
echo "<fieldset><b>No Results Found for Search Query '$search_term'</b></fieldset>";
}
else
 {
 echo "<table border='0' font color='red' bgcolor='lightblue'>
 <tr align='left' >
 <th><font color='green'>ID</font></th>
 <th><font color='green'>Name</font></th>
 <th><font color='green'>Salary</font></th>
 <th><font color='green'>Location</font></th>
 <th><font color='green'>Contact</font></th>
 <th><font color='green'>Occupation</font></th>
 </tr>" ;
 while ($row = mysql_fetch_array($result1)){ 

 echo "<div align=center></div>";
  "
   <tr bgcolor='lightgrey'>
   <td>$row[0]</td>
     <td>$row[1]</td>
    <td>$row[2]</td>
    <td>$row[3]</td>
    <td>$row[4]</td>
    <td>$row[5]</td>
    </tr>";


    } 

   print "</table>\n"; 
 }
 }

?> 

【问题讨论】:

  • 通知消息的其余部分是什么?它会告诉你它找不到的索引是什么,以及它出现在代码的哪一行。
  • 我的猜测,第 1 行未定义的索引“搜索”
  • 您使用的是an obsolete database API,应该使用modern replacement。您也容易受到SQL injection attacks的影响,现代 API 可以让您更轻松地从 defend 中获得。
  • &lt;font color='green'&gt; / 我是初学者 — 请查找更多最新资源以供学习。自从使用&lt;font&gt; 元素成为一个好主意以来,已经过去了大约 15 年。
  • PHP 中存在语法问题 - 内部 while 条件

标签: php indexing


【解决方案1】:

“注意:未定义索引”表示您正在尝试访问不存在或拼写错误的数组中的变量。 寻找这些:

$row[5]

或者这些:

$_POST["search"]

其中一个值未设置(您可以使用 isset() 检查),或者拼写错误。

【讨论】:

  • 感谢 Borniet 我会尝试 isset()。
【解决方案2】:

在变量中使用 isset() 函数

PHP 中的

isset() 函数确定变量是否已设置且不为 NULL。它返回一个布尔值,也就是说,如果设置了变量,则返回 true,如果变量值为 null,则返回 false。 关于这个函数的更多细节可以在 PHP 手册中找到。

【讨论】:

    最近更新 更多