[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с PHP: функция explode
tweak
Доброго времени суток.
Делаю нечто подобное как интернет-магазин. У меня есть список товаров/услуг, я их вывожу списком и у каждого наименования есть чекбокс и текстовое поле с кол-вом.

Результат записываю в БД в одну ячейку в виде: 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 "<input type='checkbox' name='items[]' value='$row_s[id]' $checked_so2>
<input type='text' size=1 name='q[]' value='
$amount'> $row_s[item] [$row_s[czk] CZK / $row_s[eur] EUR]<br>\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) - то всё ОК.

Подскажите люди добрые, что я делаю не так. Вторые сутки над этим сижу и все никак не могу сделать.



Спустя 25 минут, 31 секунда (20.07.2010 - 01:51) qpayct написал(а):
организовано не правильно вот потому и запутался сам в своём же коде.

- не вижу смысла записывать колличество товаров на складе(или где они там) в одну ячейку и потом с ними "плясать" в пхп.
- цикл внутри цикла открытие 2-ух таблиц одна в другой - зло
- вывод во втором цикле сгенерированого хтмл на страницу - зло
используй набор функции для этих манипуляций, а ещё лучше класс

Спустя 14 минут, 26 секунд (20.07.2010 - 02:05) tweak написал(а):
Список товаров храниться в отдельной таблице и его могут редактировать, удалять, изменять - так и надо.

А потом в таблице клиенты, записваются заказы конкретного человека, в одну из таких ячеек я и хочу записать перечень того, что он заказал и сколько.

Может немного и коряво, но переделывать все много времени уйдет. Подскажите просто как исправить этот глюк.

Спустя 33 минуты, 12 секунд (20.07.2010 - 02:38) qpayct написал(а):
для таких вещей в хтмл есть отличная штука - массив.
print_r($_POST['product']);

<form action="index.php" method="post">
<input
type="text" name="product[]" />
<input
type="text" name="product[]" />
<input
type="text" name="product[]" />
<input
type="text" name="product[]" />
<input
type="text" name="product[]" />
<input
type="submit" value="ok" />
</form>

Спустя 5 часов, 36 минут (20.07.2010 - 08:14) sergeiss написал(а):
Цитата (tweak @ 20.07.2010 - 03:05)
Подскажите просто как исправить этот глюк.


Тебе уже qpayct сказал - организовано криво. Лучше переделай сразу, чем мучаться самому и мучать того, кто потом будет это поддерживать smile.gif Для каждого типа информации надо свою колонку изначально организовать, тогда проще работать будет.

То есть, рекомендация одна - переделать. Если же тебе хочется именно косячный вариант развивать, то делай это самостоятельно. Нефиг ерундой всякой грузить людей. ОК?

Быстрый ответ:

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