PHP未定义索引 - 排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP未定义索引 - 排序相关的知识,希望对你有一定的参考价值。
它基本上显示来自mysql数据库的数据并使用
$sortby = $_GET['sort'];
而我得到的错误是
Notice: Undefined index: sort in /home/4507408/public_html/list.php on line 8
这是完整的代码,任何想法? (第8行是$ sortby = $ _GET ['sort'];)
谢谢你看:)
<?php
$dbhost = 'localhost';
$dbuser = 'CU4507408';
$dbpass = 'adamadam1';
$dbname = 'CU4507408';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die("Error connecting to database");
mysql_select_db($dbname);
$sortby = $_GET['sort'];
?>
多数民众赞成在页面顶部
<table border="1">
<tr>
<th><a href="list.php?sort=name">Product Name:</a></th>
<th><a href="list.php?sort=price">Price £</a></th>
<th><a href="list.php?sort=manufacturer">Manufacturer</a></th>
<th><a href="list.php?sort=rating">Rating</a></th>
<th><a href="list.php?sort=categoryname">Category</a></th>
</tr>
<?php
$query = "SELECT p.productID, p.name, p.price, p.manufacturer, p.rating, c.categoryname FROM product p INNER JOIN category c WHERE p.categoryID=c.categoryID ORDER BY $sortby ASC;";
$result = mysql_query($query) or die("failed!");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<tr>
<td><a href="link.php?productID=<?= $row['productID'] ?>"><?= $row['name'] ?></a></td>
<td><?= $row['price'] ?></td>
<td><?= $row['manufacturer'] ?></td>
<td><?= $row['rating'] ?></td>
<td><?= $row['categoryname'] ?></td>
</tr>
<? } ?>
答案
试试:
$sortby = isset($_GET['sort']) ? $_GET['sort'] : 'default_value';
此外,如果您使用与$_GET
一起传递的变量,则必须检查它是否不是在查询中注入某些内容的值。好的做法是:
$sortbyValues = array('price', 'manufacturer', 'rating', 'categoryname');
$sortby = isset($_GET['sort']) && in_array($sortby, $sortbyValues) ? $_GET['sort'] : 'default_value';
另一答案
由于未在配置文件上设置索引,因此会出现问题。您可以使用以下任何选项:
@$sortby = $_GET['sort'];
$sortby = isset($_GET['sort']) ? $_GET['sort'] : 'default_value';
另一答案
从代码中删除此行
$sortby = $_GET['sort'];
在代码顶部添加此代码
if (isset($_GET['sort']) && !empty($_GET['sort'])) {
$sortby = $_GET['sort'];
}else{
/*in case value of $_GET['sort'] is not retrieved, Action can be done for error handling here. */
}
以上是关于PHP未定义索引 - 排序的主要内容,如果未能解决你的问题,请参考以下文章