php - 是什么导致 undefined index 错误?

标签 php html mysql

<?php 
  mysql_connect("localhost","root",""); 
  mysql_select_db("sample") or die("database could not connect "); 
?> 
<html> 
<head>
<meta name="description" content="Php Code for View, Search, Edit and Delete 
Record" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>View Student  Record</title>
</head>
<body>
<center><h1><u>Student Database</u></h1></center>
<?php
  $roll=$_GET["roll"]; 
  $query="select * from student where roll='$roll'"; 
  $result=mysql_query($query);
  while ($row = mysql_fetch_array($result)) { 
  }
?>
<table style=" border:1px solid silver" cellpadding="5px" cellspacing="0px" 
align="center" border="1">
<tr>
<td colspan="4" style="background:#0066FF; color:#FFFFFF; font-size:20px">VIEW 
STUDENT DATABASE</td></tr>
<tr>
<td> Roll Number</td><td><? echo $row[0];?></td> 
<td> Class</td><td><? echo $row[1];?></td> 
</tr>
<tr>
<td> Name of Student</td><td><? echo $row[2];?></td> 
</tr>
<tr>
<td>Sex</td><td><? echo $row[3];?></td> 
<td>Address1</td><td><? echo $row[4];?></td></tr>
<tr> 
<td>Address2</td><td><? echo $row[5];?></td> 
<td>Address3</td><td><? echo $row[6];?></td></tr> 
<tr>
<td>Remarks</td><td><? echo $row[7];?></td></tr> 
<tr>
</table>
<p align="center"><a href="index.php">Go Back to Home</a></p> 
</body>
</html>

这是我的代码

<?php 
  $roll=$_GET["roll"]; 
  $query="select * from student where roll='$roll'";
  $result=mysql_query($query);
  while ($row = mysql_fetch_array($result)) {
  }
?> 

这是我的问题。我不知道如何摆脱这个错误:

Notice: Undefined index: roll in C:\xampp\htdocs\sample\view.php on line 16

第 16 行是 $roll=$_GET["roll"];

此代码应在每一行中显示信息,但在我运行它时,它什么也没显示。

最佳答案

您的问题是未定义的 $_GET 索引。使用isset(),例如

$roll = isset($_GET['roll']) ? $_GET['roll'] : null; // or a suitable default

尝试这样的事情来修复你的查询循环

$result=mysql_query($query);
?>

<table style=" border:1px solid silver" cellpadding="5px" cellspacing="0px" align="center" border="1">
<tr>
<td colspan="4" style="background:#0066FF; color:#FFFFFF; font-size:20px">VIEW 
STUDENT DATABASE</td></tr>

<?php while ($row = mysql_fetch_array($result)) : ?>

<!-- rows, cells and echos, etc -->

<?php endwhile ?>

</table>

最后,MySQL 扩展现已弃用。我强烈建议您切换到 PDO .使用PDOStatement::bindParam()还将解决 mysql_query() 中的 SQL 注入(inject)漏洞。

关于php - 是什么导致 undefined index 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13042430/

相关文章:

javascript - 将 javascript 插入 echo PHP

php - 如何在 PHP 中回显不同的计数?

php - MySql 数据库连接压缩

html - 您如何确定使用的是 CSS 堆栈中的哪种字体?

mysql - 如何像普通的 LIKE 运算符一样在 sphinx 中进行查询 "%somestring%"

php - 将修改后的预序树遍历数据放入数组中

php - 从有限制的3个表中选择数据

html - CSS -webkit 在菜单中淡入淡出

html - Grid 960 和 CSS - 并非在所有浏览器中都显示

php - WPDB 查询 - 根据 _meta_key 返回 meta_value