[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Код работает в PHP4 и не работает в PHP5
Гость_Роман
Код работает в PHP4 и не работает в PHP5, видимо дело в функции str_replace.

Данный код обрабатывает массив с количеством позиций и если пользователь меняет количество в форме и нажимает кнопку "Обновить количество", это значение добавляется в базу.
Но код работает в PHP4 и не работает в PHP5, видимо дело в функции str_replace. Помогите поправить!

PHP:
while ( list($ii,$xx) = each($kolvo) )
{
$oitem_count = str_replace("-", "", $kolvo[$ii]);
if($oitem_count){$sql = sed_sql_query("UPDATE $db_order_item SET oitem_count = '$oitem_count' WHERE oitem_id='$ii' "); }


HTML:
<form action="plug.php?e=shop&a=update" method="post">
Позиция 1 <input name="kolvo[(id позиции)]" type="text" value="(кол-во)" size="3" >
<input
type="submit" value="Обновить количество" />
<input
type="hidden" id="x" name="x" value="30416D" />
</form>
killer8080
Цитата (Гость_Роман @ 8.04.2013 - 13:44)
Но код работает в PHP4 и не работает в PHP5, видимо дело в функции str_replace.

С чего бы это? blink.gif
Скорее ошибку нужно искать в вашей функции sed_sql_query. Или код был написан для включенного register_globals. Откуда берётся переменная $kolvo?
Guest
Переменная $kolvo берется из базы, там уже прописано количество (kolvo) товара, оно выводится в форму и там его можно поправить и новое значение , если оно изменено записывается в базу, только на локалке (PHP4) работает а у хостера (PHP5) нет.
Я почему сделал предположение в сторону str_replace, потому что вычитал в сети следующее:
"Поведение этой функции изменилось. В старых версиях существовала ошибка при одновременной передаче массивов в аргументах search и replace. Ошибка заключается в том, что пустые элементы массива search пропускались без перемещения к следующему элементу массива replace. Эта ошибка была исправлена в PHP 4.3.3. Если ваши скрипты использовали эту ошибку, то в них нужно удалить пустые элементы из массива search перед вызовом этой функции."
а как поправить я не знаю.
Guest
приведу весь код, вдруг поможет

if ( $a == "update" )
{
$sql = sed_sql_query("SELECT order_usrid FROM $db_order WHERE order_usrid='".$usr['id']."' AND order_state = '0' LIMIT 1");
$row = sed_sql_fetcharray($sql);
$o = $row['order_id'];


if ( $row['order_usrid'] == $usr['admin'] )
{
while ( list($ii,$xx) = each($kolvo) )
{
$oitem_count = str_replace("-", "", $kolvo[$ii]);
if($oitem_count){$sql = sed_sql_query("UPDATE $db_order_item SET oitem_count = '$oitem_count' WHERE oitem_id='$ii' "); }
}
SlavaFr
$a называется $_GET['a']
a $kolvo называется $_POST['kolvo']
почитай про registr global

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
Guest
SlavaFr
Спасибо, сработало!
Быстрый ответ:

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