assoc. Array überprüfen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • assoc. Array überprüfen

    Hallo zusammen

    ich habe ein kleines Problem mit meinem Warenkorb.
    Also das ganze wird wie folgt befüllt:

    PHP-Code:
    <?php
    $datenarr 
    $_SESSION['warenkorb'];  
    $counter 1;
    if (!isset(
    $_GET['item'])) {
        foreach (
    $datenarr as $key => $asd) {
    echo 
    $key."GOGOGOGOGOOOOOOO";    
    $articleId[$key] = $asd['articleId'];
    $zähler[$key] = $counter;
    $anzahl[$key] = $asd['anzahl'];
    $price[$key] = $asd['price']; 
    $name[$key] = $asd['name'];
    $counter $counter 1;
    $unset $key;        
    echo  
    "articleId: ".$asd['articleId']."<br />"
    echo  
    "Name: ".$asd['name']."<br />"
    echo  
    "Anzahl: ".$asd['anzahl']."<br />"
    echo  
    "price: ".$asd['price']."<br />";?> 
    <a href="cart.php?item=<?php echo $unset;?>">X</a> 
    <?php 
    echo "<br />";
    }
    ?> 
    <a href="pay.php">Zur Kasse</a>
    Nun, das Problem ist folgendes - der User kann z.B.
    Artikel 1 in den Warenkorb hinzufügen (menge wie er will)
    danach kann er das nochmals

    nun müsste ich prüfen ob artikel 1 schon im warenkorb ist, falls ja adde ich einfach die Menge... ist ja eigentlich easy aber ich fühle mich

    habe echt keinen Schimmer

    Kann mir da jemand helfen?

    DAnke vielmals

  • #2
    Ich glaube, du machst einen Fehler beim Aufbau der Session, da ich keinen Bezug vom Artikel zur Menge erkennen. Warum baust den Warenkorb nicht so auf (vom Prinzip her)?
    PHP-Code:
    $_SESSION['warenkorb'][$articleid] = (hier schreibst du nur die Anzahl rein
    Ist der Artikel noch nicht im Warenkorb, so wird ein neuer Eintrag in die Session geschrieben. Ist er schon da, wird einfach die Anzahl erhöht. Also z.B. so:
    PHP-Code:
    $_SESSIOn['warenkorn'][$_GET['item']] += $_GET['num'
    Mehr solltest du eh nicht in der Session haben, sondern dir den Rest aus der Datenbank holen.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hey

      Habs geschafft - alles eigentlich so gelassen wie es sein sollte

      code für alle hier:

      PHP-Code:
      <?php
      SESSION_START
      ();
      $con mysql_connect("localhost","root","test"); 
      //Verbindung zur DB herstellen 
      if (!$con

        die(
      'Could not connect: ' mysql_error()); 

      mysql_select_db("neekmart"$con); 
      $usr $_SESSION['username'];
      $art $_GET["art"];
      $amm $_GET["amm"];
      $username $usr;
      $artikel "SELECT * FROM products WHERE nummer = ".$_GET['art'];
      $ergebnis mysql_query($artikel)
      OR die(
      "Error: $artikel <br>".mysql_error());
      while(
      $row mysql_fetch_object($ergebnis)) 

          
      $name $row->name;
          
      $preis $row->preis;
          
      $preis $preis $amm;
          
      $lager $row->lagerbestand;
      }
      if(
      $amm $lager)
      {
          
      ?>
          <SCRIPT language="JavaScript"> 
          var confirmResult = confirm("Die gewünschte Stückzahl ist leider nicht auf Lager.");
          if (confirmResult = true)
          {
              window.history.back()
          }
          </SCRIPT>
          <?php
      }
      else
      {
          
      $datenarr $_SESSION['warenkorb']; 
          foreach (
      $datenarr as $werte
          {
              
      $eintrag $werte['articleId'];
              if (
      $art == $eintrag)
              {
                  
      out();
              }
          }
          
      $warenkorb $_SESSION['warenkorb'];
          
      $b['name'] = $name
          
      $b['articleId'] = $art
          
      $b['anzahl'] = $amm;
          
      $b['username'] = $usr
          
      $b['price'] = $preis
          
      $warenkorb[] = $b
          
      $_SESSION['warenkorb'] = $warenkorb
          
      header('location: index.php?kat=cart&ub=');
      }
      function 
      out()
      {

      header('location: index.php?kat=cart&ub=');
      exit();
      }
      ?>

      Kommentar


      • #4
        Sorry anschlussfrage:

        Code momentan
        PHP-Code:
        <?php
        SESSION_START
        ();
        $con mysql_connect("localhost","root","test"); 
        //Verbindung zur DB herstellen 
        if (!$con

          die(
        'Could not connect: ' mysql_error()); 

        mysql_select_db("neekmart"$con); 
        $usr $_SESSION['username'];
        $art $_GET["art"];
        $amm $_GET["amm"];
        $username $usr;
        $artikel "SELECT * FROM products WHERE nummer = ".$_GET['art'];
        $ergebnis mysql_query($artikel)
        OR die(
        "Error: $artikel <br>".mysql_error());
        while(
        $row mysql_fetch_object($ergebnis)) 

            
        $name $row->name;
            
        $preis $row->preis;
            
        $preis $preis $amm;
            
        $lager $row->lagerbestand;
        }
        if(
        $amm $lager)
        {
            
        ?>
            <SCRIPT language="JavaScript"> 
            var confirmResult = confirm("Die gewünschte Stückzahl ist leider nicht auf Lager.");
            if (confirmResult = true)
            {
                window.history.back()
            }
            </SCRIPT>
            <?php
        }
        else
        {
            
        $datenarr $_SESSION['warenkorb']; 
            foreach (
        $datenarr as $werte
            {
                
        $eintrag $werte['articleId'];
                if (
        $art == $eintrag)
                {
                    
        out();
                }
            }
            
        $warenkorb $_SESSION['warenkorb'];
            
        $b['name'] = $name
            
        $b['articleId'] = $art
            
        $b['anzahl'] = $amm;
            
        $b['username'] = $usr
            
        $b['price'] = $preis
            
        $warenkorb[] = $b
            
        $_SESSION['warenkorb'] = $warenkorb
            
        header('location: index.php?kat=cart&ub=');
        }
        function 
        out()
        {
        $anz $_GET["amm"];
        echo 
        $anz;
        HEADER("Location: index.php?kat=cart&ub=&krb=".$anz.""); 
        exit();
        }
        ?>
        Nun, mein Ziel ist es - falls der Artikel vorkommt nicht nur ne meldung auf der Seite auszuspucken sondern die Anzahl zu erhöhen, sollte ja nicht soooo schwer sein, dacht ich mir


        mein Problem ist folgendes: Also wenn mein skript erkennt dass der Eintrag vorkommt - gehts in die Funktion OUT()

        Nun dort möchte ich jetzt den Erkannten eintrag inkrementieren

        also z.b.

        Der Artikel mit der ID 123 ist schon drin -> gehe zu OUT

        Nun - menge von 123 um $anz erhöhen

        wüsste jemand wie das geht?

        Danke

        Kommentar

        Lädt...
        X