Problem beim erstellen eines Warenkobes

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

  • Problem beim erstellen eines Warenkobes

    Hallo Zusammen,

    ich möchte gerne einen Pizzaliefersrevice programmieren und habe mir das Warenkorbsystem aus dem Tutorial als vorlage genommen.

    Ich habe zwei Dateien erzeugt index.hmtl hier wird der link aufgerufen und die waren ID übergeben.

    cart.php hier ist der Warenkorb enthalten.

    Leider wird beim klick auf den Link keine Tabelle ausgegeben.

    Vielleicht könnt Ihr mir helfen.

    HTML-Code:
    <?php
        session_start();
    ?>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Session</title>
    </head>
    
    <body>
    
      
    <a href="cart.php?action=add&id=1">Zum Warenkorb hinzufügen</a>
    
    <a href="cart.php?action=delete&id=1">Löschen</a>
    
    
    </body>
    </html>
    PHP-Code:
    <?php
        session_start
    ();
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Session</title>
    </head>

    <body>
    <?php
    function writeShoppingCart() 


        
    $cart $_SESSION['cart']; 
            if (!
    $cart
            { 
                return 
    '<p>Sie haben keine Artikel in Ihrem Warenkorb</p>'
            } 
            else
            { 
                
    // Gliedert die Session variale auf 
                
    $items explode(',',$cart); 
                return 
    '<p>Sie haben <a href="cart.php">'.count($items).' item'.$s.' in Ihrem Warenkorb</a></p>'
            }
    }
     
    function 
    showCart() {
        
    $cart $_SESSION['cart'];
        if (
    $cart) {
        
    $items explode(',',$cart);
        
    $contents = array();
        foreach (
    $items as $item) {
        
    $contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1;
        }
        
    $output[] = '<form action="cart.php?action=update" method="post" id="cart">';
        
    $output[] = '<table>';
        foreach (
    $contents as $id=>$qty) {
        
    $sql 'SELECT * FROM books WHERE id = '.$id;
        
    $result $db->query($sql);
        
    $row $result->fetch();
        
    extract($row);
        
    $output[] = '<tr>';
        
    $output[] = '<td><a href="cart.php?action=delete&id='.$id.'" class="r">Löschen</a></td>';
        
    $output[] = '<td>'.$title.' by '.$author.'</td>';
        
    $output[] = '<td>&pound;'.$price.'</td>';
        
    $output[] = '<td><input type="text" name="qty'.$id.'" value="'.$qty.'" size="3" maxlength="3" /></td>';
        
    $output[] = '<td>&pound;'.($price $qty).'</td>';
        
    $total += $price $qty;
        
    $output[] = '</tr>';
        }
        
    $output[] = '</table>';
        
    $output[] = '<p>Gesamtsumme: &pound;'.$total.'</p>';
        
    $output[] = '<div><button type="submit">Aktualisieren</button></div>';
        
    $output[] = '</form>';
        } else {
        
    $output[] = '<p>Ihr Warenkorb ist leer.</p>';
        }
        return 
    join('',$output);


    // Hier wir die Waren ID dem Warenkorb Card hinzugefügt
    $cart $_SESSION['cart'];
    $action $_GET['action'];
    switch (
    $action
    {
        case 
    'add':
        if (
    $cart
        {
            
    $cart .= ','.$_GET['id'];
        } 
            else 
            {
                
    $cart $_GET['id'];
            }
        break;
        
        case 
    'delete':
        if (
    $cart
        {
            
    $items explode(',',$cart);
            
    $newcart '';
        
            foreach (
    $items as $item
            {
                if (
    $_GET['id'] != $item
                {
                    if (
    $newcart != ''
                    {
                        
    $newcart .= ','.$item;
                    } 
                        else 
                        {
                            
    $newcart $item;
                        }
                }
            }
            
    $cart $newcart;
        }
        break;
        
        case 
    'update':
            if (
    $cart) {
            
    $newcart '';
            foreach (
    $_POST as $key=>$value) {
            if (
    stristr($key,'qty')) {
            
    $id str_replace('qty','',$key);    
            
    $items = ($newcart != '') ? explode(',',$newcart) : explode(',',$cart);
            
    $newcart '';
            foreach (
    $items as $item) {
            if (
    $id != $item) {
            if (
    $newcart != '') {
            
    $newcart .= ','.$item;
            } else {
            
    $newcart $item;
            }
            }
            }
            for (
    $i=1;$i<=$value;$i++) {
            if (
    $newcart != '') {
            
    $newcart .= ','.$id;
            } else {
            
    $newcart $id;
            }
            }
            }
            }
            }
            
    $cart $newcart;
        break; 
    }
    $_SESSION['cart'] = $cart

    //Prüfen ob mehrere gleiche Artikel vorhanden sind
    //Nun nachdem wir die Liste der Produkt IDs verwarbeitet haben, haben wir wiederholt durch sie ein neues Array namens $contents ((//777erstellt, welche aus dem Key=>Werte Paar wo der key durch die Produkt ID und dem Wert der Anzahl des Produkte im Warenkob zusammengesetzt wird. So um unserer Bespiel zuvor zu verwenden, eine Cart (warenkorb) enthält "1,1,3,1,2" wird in ein Array umgesetzt ´1´=>3,´2´=>1,´3´=>1. Nun da wir eine akkuraten Zähler für jedes Produkt haben, nun können wir die Produkte eine anfrage an die Datenbank senden um die Details in einer Tabelle auszugeben:

    if ($cart
    {
        
    $items explode(',',$cart);
        
    $contents = array();
        foreach (
    $items as $item
            {
            
    $contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1;
            } 
    }

    // Zumm ausgebnd der Bestellung in einer Tabelle
    $total 0;
    $output[] = '<form action="cart.php?action=update" method="post" id="cart">'
    $output[] = '<table>';
    foreach (
    $contents as $id=>$qty
    {
        
    $sql 'SELECT * FROM books WHERE id = '.$id;
        
    $result $db->query($sql);
        
    $row $result->fetch();
        
    extract($row);
        
    $output[] = '<tr>';
        
    $output[] = '<td><a href="cart.php?action=delete&id='.$id.'" class="r">Löschen</a></td>';
        
    $output[] = '<td>'.$title.' von '.$author.'</td>';
        
    $output[] = '<td>'.$price.'€</td>';
        
    $output[] = '<td><input type="text" name="qty'.$id.'" value="'.$qty.'" size="3" maxlength="3" /></td>';
        
    $output[] = '<td>'.($price $qty).'€</td>';
        
    $total += $price $qty;
        
    $output[] = '</tr>';
    }
    $output[] = '</table>';
    $output[] = '<p>Gesamtsumme: &pound;'.$total.'</p>'
    $output[] = '<div><button type="submit">Warenkorb aktualisieren</button></div>';
    $output[] = '</form>'
        
    ?>

    </body>
    </html>
    Gruß

    Jürgen
Lädt...
X