Autor Zpráva
Fisak
Profil
Dobrý den,

řeším problém se zápisem/úpravou zápisu v db. Mám určitý řádek který chci zapsat a pokud již je zapsaný v db tak by se mělo upravit jen jeho množství.
Bohužel tomu tak není. Zasekne se mi to vždy na podmínce s count() a vždy se zapíše nový řádek místo toho aby se updatoval stávající řádek.

<?php
if(isset($_POST["add_to_cart"]))
{

  $prod_id = explode("-", mypage("action"));
  
  if($_SESSION['eshop_user_id'] != "") $sql_dproduct = DB::query("select [quantum] from [:pref:eshop_orders_products] where [user_id] = %i", $_SESSION['eshop_user_id'], " and [product_id] = %i", $prod_id[0]);
  else $sql_dproduct = DB::query("select [quantum] from [:pref:eshop_orders_products] where [user_ip] = %i", $_SERVER["REMOTE_ADDR"], " and [product_id] = %i", $prod_id[0]);
    
  if(count($sql_dproduct) == 0) {

  if(!$_SESSION['eshop_user_id']) $eshop_user_id = "0";
  else $eshop_user_id = $_SESSION['eshop_user_id'];

    $arr_cart = array(
    'product_id' => $prod_id[0],
    'user_id'  => $eshop_user_id,
        'user_ip'  => $_SERVER["REMOTE_ADDR"],
        'quantum'  => $_POST["quant_product"],
    );
    
    DB::query("insert into [:pref:eshop_orders_products]", $arr_cart);

    redirect_page("product", "3", count($sql_dproduct));
  
  } else {
  
  foreach ($sql_dproduct as $n => $row_dproduct) {
  
  $qant = $row_dproduct->quantum + $_POST["quant_product"];
  
  DB::query('UPDATE [:pref:eshop_orders_products] SET [quantum] = %i', $qant, ' WHERE [id] = %i', $prod_id[0]);

    redirect_page("product", "3", "2");
  
  }
  
  }

}

Nevidíte tam prosím nějakou chybu? Předem děkuji za odpovědi.
Kajman
Profil
Co vrací metoda DB::query?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: