[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как правильно вытащить данные из массива
logic
Всем привет, мало сталкивался с массивами, и к сожалению с такой задачей как тут сталкиваюсь впервые:

есть форма с полем, которое выводится в цикле, имя у поля
<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, это тоже уже не массив:

Array
Array
Array


а как правильно было бы сделать в такомслучае? т.к. мне кажется, что тот вариант что я выбрал, т.е. через $_POST['state'][$k] как то нубьём пахнет...хотелось бы усовершенствоваться. :))

Спустя 44 минуты, 23 секунды (4.05.2011 - 17:54) walerus написал(а):
Чего то немного не так Вы используете функции...

Если в двух словах:
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."'");
}

вот наверно так, попробуйте.
Быстрый ответ:

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