[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Редактирование записей в БД MySQL
Страницы: 1, 2
TranceIT
Kusss
В данном случае да, массив, но с одним единственным значением, которое выберет пользователь. Cдается мне ты путаешь radio с checkbox.

Кодом $edit[$value][] = $key; ты просто меняешь местами ключ значение и не задумываешься о том, что если у массива будут одинаковые значения, то в новом массиве ключи перезапишутся.

А вот этот код

foreach ($edit AS $value=>$num){
// обновляем ВСЕ num со значением ( 0, 1 ,2 )
$sql = "UPDATE `objects` SET `status`= '$value' WHERE num IN (".implode(', ' $num).") ";
mysqli_query($sql) or die( mysqli_error() );
}

Отработает три раза (вернее столько раз, сколько элементов в массиве), но в итоге в базе у всех $num будет значение последнего элемента массива $edit.


$update = "UPDATE `objects` SET `status` = CASE";
foreach ($_GET['group'] AS $key=>$value){

$update .= " WHEN num = $key THEN $value ";
$_num[] = $value['id'];
}
$update .= " END WHERE num IN (".implode(',',$_num).")";


Ты хоть проверяешь результат перед тем как советовать?

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
Kusss
TranceIT
похоже ты совершенно не разбираешься в массивах.

И спасибо что указал ошибку:
$_num[] = $value['id'];
заменить на
$_num[] = $key;
копипаст непобедим :(
TranceIT
Цитата (Kusss @ 4.02.2016 - 18:39)
похоже ты совершенно не разбираешься в массивах.

Аргументируй. Где я ошибся?

Зачем вот это вообще?
$_num[] = $key;

Почему ты не используешь все возможности языка? Если ты хочешь собрать все ключи в отдельном массиве, то есть array_keys().

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
Kusss
Цитата (TranceIT @ 5.02.2016 - 08:07)
Аргументируй. Где я ошибся?

Цитата
Кодом $edit[$value][] = $key; ты просто меняешь местами ключ значение и не задумываешься о том, что если у массива будут одинаковые значения, то в новом массиве ключи перезапишутся.

это не так.
1) я не меняю ключи со значениями, а создаю совершенно другой по структуре массив
2) ключи не будут перезаписаны.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.