фатальная ошибка php "Не удается получить доступ к пустому свойству", сгенерированному foreach


Я получаю сообщение "не удается получить доступ к ошибке пустого свойства" в строке с foreach в этом коде. print_r($captions) и print_r($updates) показывают ожидаемые значения в каждом массиве.

$updates представляет собой массив установленных флажков, в которых пользователь хочет обновить подписи к фотографиям. $captions - это массив всех подписей из баз данных.

Обработка PHP, показанная здесь, для краткости опускает очистку данных. Коды выдают ошибку с процедурами очистки или без них.

if(isset($_POST['update']) && isset($_POST['caption'])){
    //check whether any photo captions are marked for update
    @$updates=$_POST['update'];
    @$captions=$_POST['caption'];           
    foreach($updates as $key->$photoid){
        $query="
        UPDATE photo 
        SET caption='".$captions[$key]."' 
        WHERE id='".$photoid."'
        LIMIT 1";
        $result=query($query);
        $message[]="Caption for photo # $photoid was successfully updated.";
    }
}

В форма создается циклом, который заполняет каждую строку записью (фото, изображение и подпись) из базы данных и добавляет флажок, указывающий, хочет ли пользователь обновить подпись.

<tr>
    <td><? echo $thisphotoid; ?>.</td>
    <td><img src="<? echo '.SITE_URL.'images/banner/'.$thisfilename; ?>" /></td>
    <td><textarea name="caption[]" cols="40" rows="5"><? echo $thiscaption; ?></textarea></td>
    <td><input type="checkbox" name="update[]" value="<? echo $thisphotoid; ?>" /></td>
</tr>
Author: cweiske, 2011-04-25

2 answers

Заменить $key->$photoid на $key => photoid

 6
Author: zerkms, 2011-04-24 22:26:23

Я думаю, вы имеете в виду:

foreach($updates as $key => $photoid) {
 2
Author: Halcyon, 2011-04-24 22:26:09