未定义的索引错误(来自数据库)

时间:2016-01-03 22:28:26

标签: php mysql mysqli

我有一个如下所示的数据库:

Name      | MyPrice | MyStock |
------------------------------
blue_pill |   20    | Yes     |
------------------------------
red_pill  |   10    | No      |
------------------------------

我想要一个能够轻松定义4个变量的代码(每个项目的价格为2个,每个项目的库存状态为2个)。

(一般来说,我会有超过2项,所以我正在寻找获得这些变量的最佳实践。)

所以我有以下代码,但它不起作用,我收到错误:

Notice: Undefined index: name (显示6次)

Notice: Undefined index: stock (显示2次)

$item1 = "blue_pill";
$item2 = "red_pill";

$productList = array();
$products = $mysqli->query("select * from table_products where Name IN ('$item1', '$item2')");
if($products){
    while($product = mysqli_fetch_assoc($products)){
        $productList[$product['name']]['MyPrice'] = $product['name']; //Errors Start Here
        $productList[$product['name']]['MyStock'] = $product['stock'];
    }
}

//first product: 

$price1 = $productList[$item1]['price']; 
$red_pill_stock = $productList[$item1]['stock'];

//second product: 

$price2 = $productList[$item2]['price'];
$blue_pill_stock = $productList[$item2]['stock'];

导致错误的原因是什么?

1 个答案:

答案 0 :(得分:1)

如果你的专栏&#39;名称实际上是NameMyStock,那么您的值在$product项中,完全这样的索引 - NameMyStock:< / p>

if($products){
    while($product = mysqli_fetch_assoc($products)){
        $productList[$product['name']]['MyPrice'] = $product['Name']; // Index here
        $productList[$product['name']]['MyStock'] = $product['MyStock']; // Index here
    }
}

或者,如果您不确定有哪些密钥,print_r($product)并检查。