Avatar billede ReneDahl Praktikant
19. februar 2016 - 12:09 Der er 3 kommentarer og
1 løsning

php shopping cart

Jeg har et eksempel på en kurv. Hvor man kan tilføje og fjerne produkter. Men jeg har et problem med at værdien kan gå i minus når man fjerner produkter og værdien kommer under 0.

se evt eksempel.


if (isset($_GET["action"]) && $_GET["action"] == "add")
{
    // Intval gets the integer value of $_GET["id"]
    $id = intval($_GET["id"]);
    // Check to see if product is not already in the session if it is implement the quantity
    if(isset($_SESSION["cart"][$id]))
    {
        $_SESSION["cart"][$id]["quantity"]++;
 
    }

    else
    {
        // Query MYSQL for ID
        global $pdo;
        $sql = $pdo->prepare("SELECT * FROM products WHERE id_product = :id");
        $sql->bindValue(":id", $_GET["id"]);
        $result = $sql->execute();
        $count = $sql->rowcount();
     
        if ($count != 0)
        {
            $row = $sql->fetchAll();
            //var_dump($row);
            $_SESSION["cart"][$row[0]["id_product"]] = array(
                "quantity" => 1,
                "price" => $row[0]["price"]
                );
        }
        else
        {
            $message = "The product ID is not valid";
        }
    }
}

if (isset($_GET["action"]) && $_GET["action"] == "remove")
{
    // Intval gets the integer value of $_GET["id"]
    $id = intval($_GET["id"]);
    // Check to see if product is not already in the session if it is implement the quantity
    if(isset($_SESSION["cart"][$id]) != 0)
    {
        $_SESSION["cart"][$id]["quantity"]--;

    }

    else
    {

        //what to do????

    }
Avatar billede ReneDahl Praktikant
19. februar 2016 - 12:10 #1
Er ny til php, hvis i har 2 sek. vil det være fedt! :0)
Avatar billede olsensweb.dk Ekspert
19. februar 2016 - 12:33 #2
ref

// Check to see if product is not already in the session if it is implement the quantity
if(isset($_SESSION["cart"][$id]) != 0)
{
    $_SESSION["cart"][$id]["quantity"]--;

}


hvorfor tester du om den er != 0 ?? ( det er jo både + og - )
burde du ikke teste om den er størrer end 0 ??

måske noget ala dette (utested)

// Check to see if product is not already in the session if it is implement the quantity
if(isset($_SESSION["cart"][$id]) > 0)
{
    $_SESSION["cart"][$id]["quantity"]--;
    if($_SESSION["cart"][$id]["quantity"] < 0) $_SESSION["cart"][$id]["quantity"] = 0;

}
Avatar billede ReneDahl Praktikant
19. februar 2016 - 13:50 #3
Det virker, jeg har ikke fået det testet ordenligt i gennem. Eftersom jeg ikke er så god til syntaxen i PHP.

Men tak for hjælpen
Avatar billede ReneDahl Praktikant
19. februar 2016 - 13:51 #4
Det virker, tak for hjælpen :0)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester