Forum Webscript.Ru

Программирование => PHP => Тема начата: Tweak от 20 Июля 2010, 02:07:00

Название: Помогите с PHP: функция explode
Отправлено: Tweak от 20 Июля 2010, 02:07:00
Доброго времени суток.
Делаю нечто подобное как интернет-магазин. У меня есть список товаров/услуг, я их вывожу списком и у каждого наименования есть чекбокс и текстовое поле с кол-вом.

Результат записываю в БД в одну ячейку в виде: 1:2|2:5|3:7| и т.д. где сначала идет номер товара а потом кол-во и это все разделяю |.



$price_so=explode("|",$row[items]);
$i = 0;

$sql_s = "SELECT * FROM `sro_db_price` WHERE type=1 ORDER BY id ASC";
$result_s = mysql_query($sql_s);
while ($row_s = mysql_fetch_array($result_s)) {
 
 
$price_so2=explode(":",$price_so[$i]);
 
if ($row_s[id] == $price_so2[0]) {
$checked_so2="checked";
$amount = $price_so2[1];
} else {
$checked_so2="";
$amount = 1;
}

 
echo " $row_s[item] [$row_s[czk] CZK / $row_s[eur] EUR]
\\n";
$i++;
}

 

Сама запись в БД выглядит так:


$amount = count($_POST[\'items\']);
for($i = 0; $i < $amount; $i++) {
$string2 .= $_POST[\'items\'][$i] . ":" . $_POST[\'q\'][$i] ."|";
}
 
$sql="UPDATE `anketa` SET items=\'$string2\' WHERE id=$_POST[anketa]";
 


Проблема в том, что если я выбираю товары подряд - то все ок, стоит мне выбрать скажем 1,2 и 4, то у четвертого при записи БД пропадает правильное кол-во (записывается всегда 1, хотя скажем ввожу кол-во 5) а при отображении 4 товар вообще не отображается. Стоит мне его только в БД подправить на номер 3 (то есть чтобы шел сразу после 1 и 2) - то всё ОК.

Подскажите люди добрые, что я делаю не так. Вторые сутки над этим сижу и все никак не могу сделать.
Название: Помогите с PHP: функция explode
Отправлено: brainkiller от 21 Июля 2010, 10:43:59
У Вас не передаётся id товара из непомеченных чекбоксов.