[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: изменение цен
maximka787
Привет мужики. Столкнулся первый раз с заполнением строк не из жесткой формы, а переменной. Помогите дописать скрипт пожалуйста. Я уже не могу ничего сообразить.
Вот первая страница:
<input type="text" name="r14" value="1000" />  // у строки с id 14 цена 1000
<input type="text" name="r22" value="1000" /> // у строки с id 22 цена 1000
<input type="text" name="r31" value="1000" /> // у строки с id 31 цена 1000
но обязательно надо только имена rN использовать, тк помимо этих через запрос пост передаются и другие данные не нужные таблице

Вторая страница:
for($i=0;$i<$_POST;$i++){

$price = $_POST[r'i'];
///$temp_id
$query = "update table set price = $price where id = $temp_id";
//$result = mysql_query($query);
}

чушь написал, по-моему, но нельзя и в субботу работать)



Спустя 2 часа, 46 минут, 13 секунд (19.02.2011 - 18:53) maximka787 написал(а):
Не поможете, ребят? я уже все перебрал. но тут массив не фиксированной длинны.

Спустя 50 минут, 40 секунд (19.02.2011 - 19:43) inpost написал(а):
Может быть:
$_POST['r'.$i]; ?

Спустя 1 день, 6 часов, 1 минута, 1 секунда (21.02.2011 - 01:44) maximka787 написал(а):
Цитата (inpost @ 19.02.2011 - 16:43)
Может быть:
$_POST['r'.$i]; ?

Ну да, только вопрос не о том. Я даже упростил задачу. Мне надо получить все элементы Пост массива. Количество. Дальше я сам их проверю.
$vsego = ****** //$_POST...

for($i=0;$i<$vsego;$i++){

$_POST['r'.$i];
/////
}

Вот не могу узнать длину

Спустя 21 минута, 3 секунды (21.02.2011 - 02:05) inpost написал(а):
foreach($_POST), count($_POST) ?

Спустя 8 часов, 14 минут, 31 секунда (21.02.2011 - 10:20) maximka787 написал(а):
Цитата (inpost @ 20.02.2011 - 23:05)
foreach($_POST), count($_POST) ?

Нет, не пойму о чем ты, эти конструкции не дают результат в таком виде.
Я вот сделал скрипт, но длину поставил произвольную, тк у меня не больше 10 полей. Но пришлось добавить проверку на пустой элемент. Правильней всетаки узнать длину ПОСТ массива
$lengthPOST = 10;  //произвольное число
for($i=1;$i<$lengthPOST;$i++){

if(!empty($_POST['r'.$i])){
echo '<br>'.$i.'='.$_POST['r'.$i];
}
}

Спустя 12 минут, 51 секунда (21.02.2011 - 10:33) Ulan написал(а):
эмм, зачем длинна массива, что, foreach не катит?

Спустя 5 минут, 15 секунд (21.02.2011 - 10:38) maximka787 написал(а):
Цитата (Ulan @ 21.02.2011 - 07:33)
эмм, зачем длинна массива, что, foreach не катит?

foreach катит, только как я цикл то напишу?

Спустя 1 минута, 37 секунд (21.02.2011 - 10:40) Ulan написал(а):
Цитата (maximka787 @ 21.02.2011 - 07:20)
Цитата (inpost @ 20.02.2011 - 23:05)
foreach($_POST), count($_POST) ?

Нет, не пойму о чем ты, эти конструкции не дают результат в таком виде.

тебе нужно хелп внимательно почитать wink.gif
foreach это и есть цикл, который перебирает все элементы массива, независимо от его длинны

Спустя 5 минут, 51 секунда (21.02.2011 - 10:45) maximka787 написал(а):
Вот единственный вариант, посмотрите, пожалуйста, верно сделал?
if($_POST) {
foreach ($_POST as $key => $value) {
if(!empty($value)){
echo '<br>$key'.$key.'='.$value;
}
}
}

Спустя 9 минут, 42 секунды (21.02.2011 - 10:55) Ulan написал(а):
да, только нужно решить нужна ли возможность устанавливать цену равную "0"
if(!empty($value))

Спустя 4 минуты, 14 секунд (21.02.2011 - 10:59) maximka787 написал(а):
Цитата (Ulan @ 21.02.2011 - 07:55)
да, только нужно решить нужна ли возможность устанавливать цену равную "0"
if(!empty($value))

Да, конечно это плохо, но иначе выводит и незаполненные поля равные 0. isset не срабатывает почему-то.

Спустя 9 минут, 54 секунды (21.02.2011 - 11:09) maximka787 написал(а):
Вот, получилось))
Только опять проблемка. У меня массив переменные r1,r2,r3 (с буквой r), а он только цифры выводит.
if($_POST) {
foreach ($_POST as $key => $value) {
if(!empty($value)){
echo 'ID= '.$key.' price= '.$value;
$query = "update test1 set price='".$value."' where id='".$key."'";
$result = mysql_query($query);
}
}
}

Спустя 46 минут, 55 секунд (21.02.2011 - 11:56) Ulan написал(а):
Он - это кто? smile.gif

Спустя 6 минут, 12 секунд (21.02.2011 - 12:02) maximka787 написал(а):
Цитата (Ulan @ 21.02.2011 - 08:56)
Он - это кто? smile.gif

У меня в коде $key имеет значение от 1 и до 10 (условно)

а переменные у меня не name="1", name="5"
А
<input type="text" name="r1" value="1000" />
<input type="text" name="r2" value="1000" />

тоесть с буквой r

Спустя 17 минут, 34 секунды (21.02.2011 - 12:20) Ulan написал(а):
ага, понял. можно передавать данные одним массивом r[]

<p><input type="text" name="r[1]" value = 1000 /></p>
<p><input
type="text" name="r[12]" value = 1000 /></p>
<p><input
type="text" name="r[10]" value = 1000 /></p>
<p><input
type="text" name="r[11]" value = 1000 /></p>


и перебирать в цикле массив $_POST['r']

foreach ($_POST['r'] as $key => $value)
{
if(!empty($value))
echo 'ID= '.$key.' price= '.$value.'<br>';
}

Спустя 10 минут, 50 секунд (21.02.2011 - 12:31) maximka787 написал(а):
Великолепно) Спасибо тебе! Буду реализовывать.


_____________
..Работает - не трогай!
Быстрый ответ:

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