我正在使用PHP OOP开发一个在线商店项目。基本上在这个项目中,每个产品都与产品供应商相关联。因此,为了使供应商列表,我在我的数据库中创建了一个名为suppliers
的表。然后我编码了这个:
$supplierSet = new Products();
$suppliers = $supplierSet->NumSupplier();
if(isset($_GET['page'])){
$page = $_GET['page'];
if($page == 1){
$supplierShow = $supplierSet->GetSupplierp(0,10);
}
if(!empty($suppliers)){
foreach($supplierShow as $supplier){
$nums = $supplierSet->NumSupplierProduct($supplier['supplier_title']);
echo "
<tr>
<td>".$supplier['table_id']."</td>
<td>".$supplier['supplier_title']." ($nums)</td>
<td><a href='supplierdelete.php?supplier_id=".$supplier['supplier_id']."'><span class='label label-danger'>REMOVE</span></a></td>
</tr>";
}
}
}
这是类Products()
,我使用的两种方法都在这里:
public function GetSupplierp($id_number,$result_num)
{
if(($id_number>=0)&&!empty($result_num))
{
$sup = $this->db->prepare("SELECT * FROM products LIMIT " . $id_number . ", " . $result_num);
$sup->execute();
$sup_array = array();
while($row = $sup->fetch())
{
$sup_array[] = $row;
}
return $sup_array;
}
}
public function NumSupplierProduct($supplier)
{
$uuu = $this->db->prepare("SELECT * FROM products WHERE product_supplier = ?");
$uuu->bindParam(1,$supplier);
$uuu->execute();
$row_sup = $uuu->rowCount();
return $row_sup;
}
所以它看起来很干净但是每当我运行它时我都会遇到这些错误:
注意:未定义的索引:supplier_title(在下面的这一行):
$nums = $supplierSet->NumSupplierProduct($supplier['supplier_title']);
注意:未定义的索引:supplier_title(在下面的这一行):
<td>".$supplier['supplier_title']." ($nums)</td>
注意:未定义的索引:supplier_id(在下面的这一行):
<td><a href='supplierdelete.php?supplier_id=".$supplier['supplier_id']."'><span class='label label-danger'>REMOVE</span></a></td>
我知道这些类型的问题似乎是重复的,但我已经阅读了与 Undefined Index 错误相关的所有问题,而我无法解决我的问题。
所以,如果你对如何解决这个问题有任何想法,请告诉我..我一定会很感激!
提前致谢。
答案 0 :(得分:1)
您收到该错误,因为您的数据库查询返回的结果集没有该索引。
在print_r($supplier)
循环内部foreach
然后exit
执行该程序。查看输出以进行验证。
要使输出更具可读性,请在"<pre>"
之前回显print_r()
以使其以更易读的方式显示
echo "<pre>";
print_r($supplier);
exit;
这是一种非常常见的故障排除方法,用于查看数组在程序中的给定点包含的内容。
另外,你可以改变
while($row = $sup->fetch())
{
$sup_array[] = $row;
}
return $sup_array;
到
return $sup->fetchAll();
或进行问题排查
print_r($sup->fetchAll());
exit;