IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Odstránenie položky z karty(nákupného košíka)

Aktivity
Avatar
Matej
Člen
Avatar
Matej:30.12.2014 20:15

Pracujem na menšom maturitnom projekte :) Pridávanie do košíka a všetko okolo toho mám ale keď chcem produkt z karty (z databázy) vymazať nefunguje mi to. Potreboval by som pomoc či mi v kóde niečo chýba alebo prečo nefunguje

Karta:

<!DOCTYPE HTML PUBLIC>
 <?php
 include("funkcie/funkcia.php");
 ?>
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" type="text/css" href="001.css">
<title>XXXXXX</title>


</head>

<body>

<?php
 include("menu.php");
 ?>

    <div id="obal">

        <div id="produkt_box">

            <from action="" method="post" enctype="multipart/from-data">

                <table align="center" width="700">

                    <tr align="center">
                        <th>Zmazať</th>
                        <th>Produkt</th>
                        <th>Množstvo</th>
                        <th>Cena produktu</th>
                    </tr>

    <?php
    $celkom = 0;

    global $con;

    $ip = getIp();

    $sel_cena = "select * from karta where ip_adres='$ip'";

    $run_cena = mysqli_query($con, $sel_cena);

    while($p_cena = mysqli_fetch_array($run_cena)){

        $pro_id = $p_cena["p_id"];

        $pro_cena = "select * from produkt where produkt_id='$pro_id'";

        $run_pro_cena = mysqli_query($con,$pro_cena);

        while ($pp_cena = mysqli_fetch_array($run_pro_cena)) {

            $produkt_cena = array($pp_cena["cena"]);

            $produkt_nazov = $pp_cena["nazov"];

            $produkt_obr = $pp_cena["obrazok"];

            $cena_produktu = $pp_cena["cena"];

            $hodnota = array_sum($produkt_cena);

            $celkom +=$hodnota;

    ?>

                    <tr align="center">
                        <td> <input type="checkbox" name="remove[]" value="<?php echo $pro_id; ?>"/> </td>
                        <td><?php echo $produkt_nazov;?><br>
                            <img src="Admin/obrazky/<?php echo $produkt_obr;?>" width="60px" height="60px" />
                        </td>
                        <td><input type="text" size="4" name="mnozstvo"/></td>

                        <td><?php echo $cena_produktu . " €"; ?></td>
                    </tr>


    <?php  } }?>

                <tr align="center">
                    <td><b>Spolu:</b></td>
                    <td colspan="3"><?php echo $celkom . "€";?></td>
                </tr>


                    <tr align="center">
                        <td> <input type="submit" name="aktualizovat" value="Aktualizovať"/> </td>
                        <td><input type="submit" name="pokracovat" value="Pokračovať v nákupe"/></td>
                        <td><button><a href="pokladna.php" style="text-decoration: none; color: black; ">Pokladňa</a></button></td>
                    </tr>
                </table>


            </from>
             <?php

            $ip = getIp();

            if(isset($_POST['aktualizovat'])){

                foreach ($_POST['remove'] as $remove_id){

                    $delete_produkt = "DELETE FROM karta WHERE p_id='$remove_id' AND ip_adres='$ip'";

                    $run_delete = mysqli_query($con, $delete_produkt);

                    if($run_delete){

                        echo "<script>window.open('karta.php','_self');</script>";
                    }
                }
            }

            ?>

        </div>


</div>


</body>
</html>

Vo funkcie.php (include("fun­kcie/funkcia.php");) je s kartou spojené iba toto :)

<?php
$con = mysqli_connect("localhost","root", "","druha");
mysqli_query($con,"SET NAMES 'utf8'");


function getIp() {
    $ip = $_SERVER['REMOTE_ADDR'];

    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }

    return $ip;
}
?>
  • databaza :)

(Keby bol niekto ochotný to skúsiť vyriešiť cez skype moc by som bol rád :) )

Ďakujem všetkým čo sa na to kuknú.

Editováno 30.12.2014 20:17
 
Odpovědět
30.12.2014 20:15
Avatar
Odpovídá na Matej
Martin Konečný (pavelco1998):30.12.2014 20:35

Co ti vypíše proměnná $delete_produkt?

Nahoru Odpovědět
30.12.2014 20:35
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Ori I
Člen
Avatar
Odpovídá na Matej
Ori I:30.12.2014 20:40

tak za prvé určite by som to nemazal podľa IP adresy ... na jednej IP môže byť viacej užívateľov, teoreticky. čiže by si mal mať v DB p_id(asi id predmetu), user_id, potom aj niečo z časom čo by košík po jednom dni premazalo, preistotu.

za

$delete_produkt = "DELETE FROM karta WHERE p_id='$remove_id'....

si vypíš obsah toho $delete_produkt a potom daj die; a výsledok si pozri či odpovedá nejakému záznamu v DB, možno tam nejako zle predávaš tie parametre alebo niečo v tom zmysle

 
Nahoru Odpovědět
30.12.2014 20:40
Avatar
sahlepik
Člen
Avatar
sahlepik:30.12.2014 22:11

Jen malá poznámka: oprav si definici formuláře. Místo párové značky <form></form> máš použito <from></from>

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
30.12.2014 22:11
Avatar
Matej
Člen
Avatar
Matej:30.12.2014 22:13

Tiež som nad IP rozmýšľal a prišlo mi to ako najľahší spôsob kedy môžu nakupovať 10 (pravdaže nie celá rodinka :) ) ľudia bez toho aby vznikol nejaký problém (riešenie je dočasná a "najľahšie" PHP študujem iba chvíľku) :) áno p_id je id produktu

 
Nahoru Odpovědět
30.12.2014 22:13
Avatar
Matej
Člen
Avatar
Odpovídá na sahlepik
Matej:30.12.2014 22:21

Od vtedy ako sa venujem PHPčku strávim nad hľadaním chyb viac ako nad samotným programovaním :D <from> Ako som mohol ? :D diky ;) a teraz myslieť nad vylepšením :)

 
Nahoru Odpovědět
30.12.2014 22:21
Avatar
Matej
Člen
Avatar
Odpovídá na sahlepik
Matej:30.12.2014 22:21

Od vtedy ako sa venujem PHPčku strávim nad hľadaním chyb viac ako nad samotným programovaním :D <from> Ako som mohol ? :D diky ;) a teraz myslieť nad vylepšením :)

 
Nahoru Odpovědět
30.12.2014 22:21
Avatar
sahlepik
Člen
Avatar
sahlepik:30.12.2014 22:23

Vytvoř si tabulku nakupni_kosik, kde bude mít každý nákup svoje vlastní ID a podle toho se dá spolehlivě mazat. I kdyby stejný uživatel udělal tentýž den další nákup, ID dalšího nákupu bude jiné a jedinečné vůči ostatním nakupujícím i jiným nákupům tohoto uživatele. :)

 
Nahoru Odpovědět
30.12.2014 22:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.