0

I'm building a small online order system for a restaurant. My code for shoping card looks like this:

<?php
// Košarica
function ShopKosarica(){
global $link;

$UkupnoZbroj = 0;
$KosaricaSession = $_SESSION['ime'];
$rezultat = mysqli_query($link, "SELECT * FROM shop_kosarica WHERE KosaricaSession='$KosaricaSession' AND KosaricaKolicina<>0 ORDER BY KosaricaID ASC");
$num_results = mysqli_num_rows($rezultat);
if ($num_results==0){
    echo "<h2><strong>Košarica je prazna</strong></h2>";
}else{
    while ($redak = mysqli_fetch_array($rezultat)){
        $ArtikalID = $redak['KosaricaArtikal'];
        $rezultat_artikal = mysqli_query($link, "SELECT * FROM shop_artikal WHERE ArtikalID='$ArtikalID'");
        $redak_artikal = mysqli_fetch_array($rezultat_artikal);
        if ($redak['KosaricaVelicina']=='jumbo'){
            $Cijena = $redak_artikal['ArtikalCijena2'];
        } else {
            $Cijena = $redak_artikal['ArtikalCijena1'];
        }
        $Kolicina = $redak['KosaricaKolicina'];
        $Zbroj = $Cijena * $Kolicina;
        $Zbroj = number_format((float)$Zbroj, 2, '.', ''); 
        $UkupnoZbroj += $Zbroj;
        $UkupnoZbroj = number_format((float)$UkupnoZbroj, 2, '.', ''); 
?>
<form class="ShopKosaricaBox" method="post">
  <input type="hidden" id="KosaricaID" name="KosaricaID" value="<?=$redak['KosaricaID']?>">
  <div class="MarginBottom15">
    <input type="text" id="KosaricaKolicina" name="KosaricaKolicina" value="<?=$redak['KosaricaKolicina']?>" maxlength="2"> x <?=$redak_artikal['ArtikalNazivHr']?> (<?=$redak['KosaricaVelicina']?>) - <?=$Zbroj?> kn
  </div>
  <div class="right MarginBottom15">
    <a onclick="ShopPromjena();">Promjeni</a>&nbsp;&nbsp;&nbsp;<a style="background:#c94e11;" onclick="ShopBrisanje();">Obriši</a>
  </div>
  <div class="clear"></div>
</form>
<script type="text/javascript">
function ShopPromjena() {   
    $(document).ready(function(){
        var str = $(".ShopKosaricaBox").serialize();
           $.ajax({
           type: "POST",
           url: "/funkcije?akcija=promjena&KosaricaID=<?=$redak['KosaricaID']?>",
           data: str,
           success: function(str){
               alert( "Uspješno ste promjenili količinu!" );
                }
            });
            return false;
        });
}
function ShopBrisanje() {   
    $(document).ready(function(){
        var str = $(".ShopKosaricaBox").serialize();
           $.ajax({
           type: "POST",
           url: "/funkcije?akcija=brisi&KosaricaID=<?=$redak['KosaricaID']?>",
           data: str,
           success: function(str){
               alert( "Uspješno ste obrisali jelo!" );
                }
            });
            return false;
        });
}
</script>
<?php
    }  ?>
<h1 class="MarginBottom25" style="font-size:25px;">Ukupno: <strong><?=$UkupnoZbroj?> kn</strong></h1> 
<?php } 
}
?>

And I put data in mysql via Ayax, this is the javascript:

$(document).ready(function(){
    $(".ShopPonudaBox").submit(function(){
    var str = $(this).serialize();
       $.ajax({
       type: "POST",
       url: "/funkcije?akcija=dodaj",
       data: str,
       success: function(str){
           alert( "Uspješno ste dodali jelo!" );
           $('#KosaricaBox').load("/include/funkcije.php?funkcija=ShopKosarica"); 
            return false;
          }
        });
        return false;
    });
});

and php code;

if ($_GET['akcija']=="dodaj")   {
    if ($_POST['KosaricaKolicina']<>0){
        $KosaricaSession = $_SESSION['ime'];
        $KosaricaArtikal = clean($link, $_POST['ArtikalID']);
        $KosaricaKolicina = clean($link, $_POST['KosaricaKolicina']);
        $KosaricaVelicina = clean($link, $_POST['KosaricaVelicina']);
        $provjera = mysqli_query($link, "SELECT * FROM shop_kosarica WHERE KosaricaSession='$KosaricaSession' AND KosaricaArtikal='$KosaricaArtikal' AND KosaricaVelicina='$KosaricaVelicina'"); 
        $num_results = mysqli_num_rows($provjera);
        if ($num_results==0){
            $result = mysqli_query($link, "INSERT INTO shop_kosarica (KosaricaSession, KosaricaArtikal, KosaricaKolicina, KosaricaVelicina) VALUE ('$KosaricaSession', '$KosaricaArtikal', '$KosaricaKolicina', '$KosaricaVelicina')");
            //header("Location: /online-narudzba#Shop");
        } else { 
            $redak_provjera = mysqli_fetch_array($provjera);
            $KosaricaID = $redak_provjera['KosaricaID'];
            $result = mysqli_query($link, "UPDATE shop_kosarica SET KosaricaKolicina=KosaricaKolicina+$KosaricaKolicina WHERE KosaricaID='$KosaricaID'");
            //header("Location: /online-narudzba#Shop");
        }       
    } else {
        //header("Location: /online-narudzba#Shop");
    }
}

I tried with this method I found here

 $('#KosaricaBox').load("/include/funkcije.php?funkcija=ShopKosarica"); 

   $funkcija = $_GET["funkcija"]; 
    if ($funkcija == "ShopKosarica") {
        echo ShopKosarica();
    }

but keep getting errors

Notice: Undefined variable: _SESSION in H:\Dropbox\htdocs\include\funkcije.php on line 47

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in H:\Dropbox\htdocs\include\funkcije.php on line 48

NoDataDumpNoContribution
  • 10,591
  • 9
  • 64
  • 104
Akul Von Itram
  • 1,428
  • 2
  • 20
  • 31

1 Answers1

1

Add

session_start();

and connect database at the beginning of your page before any HTML

You will have something like :

$con=mysqli_connect("localhost","xxxx","xxxx","xxxxx");

//check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL:" . mysqli_connect_error();
}

session_start();
        include("inc/incfiles/header.inc.php")?>
        <html>
        <head>
    <meta http-equiv="Content-Type" conte...

Don't forget to remove the space you have before

Prashant Tapase
  • 2,132
  • 2
  • 25
  • 34