есть форма с полем, которое выводится в цикле, имя у поля
<input type='text' name= state[]></input>
я посылаю данные методом POST и дальше у меня идет обновление выдранных строк в БД в цикле.
$k=0;
$state = implode(',' , $_POST['state']);
foreach($_POST['userid'] as $upd_id){
mysql_query("UPDATE table SET `state` = '".$state[$k]."' WHERE id = '".$upd_id."'");
}
я думал, что внутри массива после implode элементы нумеруются как [0,1,2,3,4], но окзалось нет )), если я указываю, чтоб он подставлял в запрос $state[$k] где $k от 0 до ..., то читает полученную переменную из массива посимвольно как бы, думаю те кто разбираются уже поняли о чем я )), так вот, а как правильно подставлять элементы массива в запрос, может implode здесь вообще лишний и можно как то работать с $_POST['state'][] ???
спасибо
)) Вообщем то я уже решил свою проблему, через $_POST['state'][$k] если у кого то есть альтернатива по работе с массивом в этом случае, то с удовольствием...
Всем спасибо
Спустя 12 минут, 59 секунд (4.05.2011 - 16:40) Michael написал(а):
После implode это уже не массив, а строка
Спустя 30 минут, 27 секунд (4.05.2011 - 17:10) logic написал(а):
ну я пробовал использовать explode .... то он мне просто тогда выводил в цикле, хотя как я понимаю, после explode, это тоже уже не массив:
а как правильно было бы сделать в такомслучае? т.к. мне кажется, что тот вариант что я выбрал, т.е. через $_POST['state'][$k] как то нубьём пахнет...хотелось бы усовершенствоваться. :))
Array
Array
Array
а как правильно было бы сделать в такомслучае? т.к. мне кажется, что тот вариант что я выбрал, т.е. через $_POST['state'][$k] как то нубьём пахнет...хотелось бы усовершенствоваться. :))
Спустя 44 минуты, 23 секунды (4.05.2011 - 17:54) walerus написал(а):
Чего то немного не так Вы используете функции...
Если в двух словах:
implode - собрать массив в строку с префиксом который указан
explode - разбить СТРОКУ в массив по префиксу
У Вас в данном моменте все уже готово, т.е., Вы получаете уже массив с данными...
Ваш код.
Непонятно откуда взялся $_POST['userid'] и почему по нему работает цикл. Если он тоже приходит из формы то...
вот наверно так, попробуйте.
Если в двух словах:
implode - собрать массив в строку с префиксом который указан
explode - разбить СТРОКУ в массив по префиксу
У Вас в данном моменте все уже готово, т.е., Вы получаете уже массив с данными...
Ваш код.
$k=0;
$state = implode(',' , $_POST['state']);
foreach($_POST['userid'] as $upd_id){
mysql_query("UPDATE table SET `state` = '".$state[$k]."' WHERE id = '".$upd_id."'");
}
Непонятно откуда взялся $_POST['userid'] и почему по нему работает цикл. Если он тоже приходит из формы то...
$state = $_POST['state'];
foreach($_POST['userid'] as $state_num => $upd_id)
{
mysql_query("UPDATE table SET `state` = '".$state[$state_num]."' WHERE id = '".$upd_id."'");
}
вот наверно так, попробуйте.