Помогите пожалуйста, проблема заключается в следующем. Получаю из БД json строку содержащую id пользователей, преобразую ее в в массив с помощью json_decode(), удаляю нужный id'шник и преобразую массив обратно в json строку и при попытке обратиться к этой строке( получаю следующую ошибку 'Fatal error: Uncaught Error: Cannot use object of type stdClass as array'), но если удаляю последний элемент массива, то все в порядке. В чем может быть дело?
public static function DeleteEventByUser($user_id, $news_id)
{
$user_id = intval($user_id);
$news_id = intval($news_id);
$link = db::getConnection();
$result = $link->prepare("SELECT `events` FROM `user` WHERE `id` = :user_id");
$result->execute(array('user_id' => $user_id));
$string = $result->fetch();
$record = $string['events'];
$massive = json_decode($record);
if (is_array($massive) and !empty($massive)) {
foreach ($massive as $key => $value) {
if ($value == $news_id) {
unset($massive[$key]);
}
}
$record = json_encode($massive);
$result = $link->prepare("UPDATE `user` SET `events` = :record WHERE `id` = :user_id");
$result->execute(array('record' => $record, 'user_id' => $user_id));
return true;
}
return false;
}
Ошибка возникает при выполнении данного скрипта
public static function addEvent($user_id,$news_id)
{
$user_id = intval($user_id);
$news_id = intval($news_id);
$link = db::getConnection();
$result = $link->prepare("SELECT `events` FROM `user` WHERE `id` = :user_id");
$result->execute(array('user_id' => $user_id));
$record = $result->fetch();
$record = $record['events'];
if (is_string($record)) {
$list = array();
$list = json_decode($record);
$list[] = $news_id;
$record = json_encode($list);
} else {
$list = array();
$list[] = $news_id;
$record = json_encode($list);
}
$result = $link->prepare("UPDATE `user` SET `events` = :record WHERE `id` = :user_id");
$result->execute(array('record' => $record, 'user_id' => $user_id));
}
Замените это $list = json_decode($record);
на это: $list = json_decode($record, true);
Ошибка из-за того, что в результате json_decode
возвращается объект stdObject
, и использовать с ним $list[] = ...
нельзя.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет! Подскажите пожалуйстаХочу сделать появление кнопки через fadeIn, и если на неё в течении 3-х секунд не кликнуть, то она исчезнет,...
Имеем структуру: пакет-документ-страницаИмеем API, выдающее данные по запросу:
Добрый день всем, прошу вашей помощи ибо сам не могу сделать) Есть несколько дивов, с одинаковыми классами (selected), нужно чтобы в переменную...
Задача такая, нужно считать количество акции и вывести их в одном блоке цифрой, после перехода на раздел "акции", нужно обнулить это число...