<?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)) {
}
?>
这是我的问题。我不知道如何摆脱这个错误:
注意:未定义的索引:在第16行的C:\ xampp \ htdocs \ sample \ view.php中滚动
第16行是$roll=$_GET["roll"];
。
此代码应显示每行中的信息,但在运行时,它不显示任何内容。
答案 0 :(得分:1)
您的问题是未定义的$_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注入漏洞。
答案 1 :(得分:1)
确保您在查询字符串上传递roll
。没有它,你的PHP代码都没有意义。您正在从$roll
基于MySql获取数据并尝试显示它;如果该变量没有值,则没有数据。因此,如Phil建议的那样添加isset
,如果没有设置,则运行任何 PHP。
此外,摆脱while
循环,只执行$row = mysql_fetch_array($result)
一次,并且只有isset($_GET['roll'])
。否则,您将尝试稍后在代码上回显false
。
答案 2 :(得分:0)
将此代码放在$roll=$_GET["roll"];
下面
if (isset($_GET["roll"))
{
// IF TRUE, DO THE QUERY ECHO YOUR RESULT
}
?>