За последние 24 часа нас посетили 62392 программиста и 1758 роботов. Сейчас ищут 880 программистов ...

Завис товар в корзине

Тема в разделе "PHP для новичков", создана пользователем Artsiom, 29 апр 2018.

  1. Artsiom

    Artsiom Активный пользователь

    С нами с:
    24 апр 2018
    Сообщения:
    18
    Симпатии:
    0
    Пытаюсь написать интернет магазин, написал корзину но там постоянно висит товар под 24 ид не знаю где накосячил, дело в том что у меня функция позволяет если я введу кол-во 0 то товар пропадает ко всем товарам работает кроме этого.
    Удалил этот товар из базы данных и вывело эти ошибки (все почему то привязано к товару ид24):
    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 5 in C:\AppServ\www\1\cart_fns.php on line 64
    (строка к которой обращается ошибка $item_price = mysql_result($result,0,'price');)
    PHP:
    1. function total_price($cart)
    2.     {
    3.         $total_price = 0.0;
    4.      
    5.         db_connect();
    6.      
    7.         if(is_array($cart))
    8.         {
    9.             foreach($cart as $id => $qty)
    10.             {
    11.                 $query = "SELECT price FROM products WHERE id='$id'";
    12.                 $result = mysql_query($query);
    13.                 if($result)
    14.                 {
    15.                     $item_price = mysql_result($result,0,'price');
    16.                     $total_price += $item_price * $qty;
    17.                 }
    18.             }
    19.         }
    20.         return $total_price;          
    21.     }
    Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\1\cart_fns.php:64) in C:\AppServ\www\1\index.php on line 50
    (строка к которой обращается ошибка header('Location: index.php?view=cart');)
    PHP:
    1. case('update_cart'):
    2.         update_cart();
    3.         $_SESSION['total_items'] = total_items($_SESSION['cart']);
    4.         $_SESSION['total_price'] = total_price($_SESSION['cart']);
    5.         header('Location: index.php?view=cart');
    6.     break;
    7.  
    8.     case('order'):
    9.  
    10.     break;
    Warning: include(C:/AppServ/www/1/views/pages/update_cart.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\1\views\layouts\shop.php on line 30
    PHP:
    1. <?php include($_SERVER['DOCUMENT_ROOT'].'/1/views/pages/'.$view.'.php'); ?>
    Warning: include() [function.include]: Failed opening 'C:/AppServ/www/1/views/pages/update_cart.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\1\views\layouts\shop.php on line 30
    PHP:
    1. <?php include($_SERVER['DOCUMENT_ROOT'].'/1/views/pages/'.$view.'.php'); ?>
    Кто разбирается может посмотрите через тимвивер? Если этого кода не хватает.
     
    #1 Artsiom, 29 апр 2018
    Последнее редактирование: 29 апр 2018
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты не кричи про mysql, а то не понятно
    ты объясни, что не так и скажи как правильно
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Artsiom, для начала: в строках 12-13 приведенного кода выполняется запрос и проверка результата.
    Результат может быть приведён к значению true, да, но этот результат будет приведён к false только в случае ошибки при выполнении запроса, а не в случае отсутствия данных, подходящих к ограничениям выборки.
    Так что, наличие "строк" для обработки в данном случае надо проверять не на false, а на "количество рядов резульатта запроса".