неопределенная ошибка индекса от php arrya - PullRequest
0 голосов
/ 02 марта 2012

Я запрашиваю БД следующим образом:

$result=mysql_query("SELECT name,items FROM mytable WHERE price='$price'");

Теперь я хочу создать массив для вставки значений, которые являются результатом этого запроса, скажем, это результирующие данные:

 name    sellerid   quantity
 john       12     10
 joel       23     20
 brian      40     10

я вставил эти данные в массив и хочу манипулировать ими (это торговая платформа), поэтому предположим, что пользователь хотел купить 25 элементов из данных в массиве, и таким образом, чтобы добиться этого, скрипт должен взять 10 предметов от Джона и 15 от Джоэла (что в сумме составляет 25), а затем установить их элементы на оставшееся значение, то есть элементы Джона = 0 и элементы Джоэла = 5.

это код. В этой строке я получаю сообщение об неопределенном индексе

$assignedQuantityPerUser[ $row[ "sellerid" ] ] += $totalUnitsOrdered;

ЭТО ОТДЫХ КОДА:

 $query="SELECT itemquantity,sellerid FROM mytable WHERE price='$price'";                     
//it is a table containing data about people selling their commoditities and the            program matches buyers and sellers by price
$foundItems = array();

// likely to be a parameter of a function...
$totalUnitsOrdered = 25;

// maps user to amount assigned from him
$assignedQuantityPerUser = array();


while ( $row = mysql_fetch_assoc( $cursor ) ) {

 // Still order Quantity left?
if ( 0 < $totalUnitsOrdered ) {

  if ( $row[ "itemquantity" ] <= $totalUnitsOrdered ) {

 // assign all of $row[ "items" ]
 $totalUnitsOrdered                         -= 0 + $row[ "itemquantity" ];
  $assignedQuantityPerUser[ $row[ "sellerid" ] ] += 0 + $row[ "itemquantity" ];
**//this is where in getting an error:r[ $row[ "sellerid" ]  is an undefined index**
}  else {

  // assign all the rest: $totalUnitsOrdered
  $totalUnitsOrdered                          = 0;
  $assignedQuantityPerUser[ $row[ "sellerid" ] ] += $totalUnitsOrdered;

}

 }


$newItem[] = $row[ "sellerid" ];
$newItem[] = $row[ "itemquantity" ];

// Append $newItem to the end of $foundItems 
 $foundItems[] = $newItem;

} // while

любезно помогите. Спасибо.

1 Ответ

3 голосов
/ 02 марта 2012

Инициализируйте значение, прежде чем использовать его:

if (!isset($assignedQuantityPerUser[$row["sellerid"]])) {
  $assignedQuantityPerUser[$row["sellerid"]] = 0;
}
$assignedQuantityPerUser[$row["sellerid"]] += $totalUnitsOrdered;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...