Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » Einfacher Warenkorb OOP mit Klasse    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag
Andy16823
Mitglied
Aktiver User


Dabei seit: 21.11.2012
Herkunft: keine Angabe
Posts: 139
     Einfacher Warenkorb OOP mit Klasse Zitat | Bearbeiten

Hallo, dies ist ein kleines und simpeles Snippet für das erstellen eines warenkorbes. Für den Warenkorb sollte eine extra php file angelegt werden. In diese kommt dann dieser Code

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:

<?php

class cart{
    
    
/**
     * 
     * Initialisiert die Klasse, muss in jeder Seite ausgeführt werden.
     */
    
public function initial_cart()
    {
        
        
$cart = array();
        if(!isset(
$_SESSION['cart']))
        {
            
$_SESSION['cart']=$cart;
        } 

    }
    
    
/**
     * 
     * Fügt einen Artikel in das Array ein
     * @param unknown_type $Artikelnummer
     * @param unknown_type $Beschreibung
     * @param unknown_type $Verkäufer
     * @param unknown_type $Kosten
     * @param unknown_type $MwstSatz
     * @param unknown_type $MwSt
     * @param unknown_type $ZwischenSumme
     * @param unknown_type $Anzahl
     * @param unknown_type $gesammt
     */
    
public function insertArtikel($Artikelnummer$Beschreibung$Verkäufer$kosten$MwstSatz$MwSt$ZwischenSumme$Anzahl$gesammt)
    {
        
        
$Artikel = array($Artikelnummer$Beschreibung$Verkäufer$kosten$MwstSatz$MwSt$ZwischenSumme$Anzahl$gesammt);
        
$cart $_SESSION['cart'];
        
array_push($cart$Artikel);
        
$_SESSION['cart'] = $cart;
        
    }
    
    
/**
     * 
     * Gibt Alle Artikel des Array in einer Tabelle aus.
     */
    
public function getcart()
    {
        
$Array $_SESSION['cart'];
        echo 
"<table width='100%'>";
        echo 
"<tr><th>Artikel Nummer</th><th>Beschreibung</th><th>Verkäufer</th><th>Summe</th><th>MwSt Satz</th><th>MwSt Summe</th><th>Zwischen Summe</th><th>Anzahl</th><th>Summe</th></tr>";
        for(
$i $i count($Array); $i++)
        {
            
$innerArray $Array[$i];
            
            echo 
"<tr>
            <td>
$innerArray[0]</td>
            <td>
$innerArray[1]</td>
            <td>
$innerArray[2]</td>
            <td>
$innerArray[3]</td>
            <td>
$innerArray[4]</td>
            <td>
$innerArray[5]</td>
            <td>
$innerArray[6]</td>
            <td>
$innerArray[7]</td>
            <td>
$innerArray[8]</td>
            </tr>"
;
        }
        
        echo 
"</table>";
    }
    
    
    
/**
     * 
     * Löscht den Waren Korb
     */
    
public function undo_cart()
    {
        
$_SESSION['cart'] = array();
    }
    
    
    
/**
     * 
     * Gibt einen Datensatz Zurück
     * @param int $point
     */
    
public function get_cartValue_at_Point($n)
    {
        
        
$Array $_SESSION['cart'];            
        return 
$Array[$n];
        
    }
    
    
/**
     * 
     * Entfernt ein Artikel am Point n
     * @param int $point
     */
    
public function delete_cartValue_at_Point($point)
    {
        
$Array $_SESSION['cart'];
        unset(
$Array[$point]);
    }
    
    
/**
     * 
     * Gibt die Anzahl der Artikel zurück
     */
    
public function get_cart_count()
    {
        return 
count($_SESSION['cart']);
    }
}

?>


So nun haben wir die Benötigte Klasse des Warenkorbes. Nun müssen wir auf allen Seiten wo der Warenkorb arbeiten soll, in die ersten Zeilen folgendes einfügen.

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:

// Die Session Starten
session_start();

// Die Klasse Includieren
include_once 'pfad zur klasse';

// Eine Neue Instanz der Klasse cart erstellen
$cart = new cart();

// Prüfen ob der Warenkorb besteht
$cart->initial_cart();


Nun kann man über die variable $cart auf die Funktionen des Waren Korbes zugreifen.

Hoffe es kann jemand gebrauchen.


Grüße Andy


Mein Neues Projeckt:
www.das-java-forum.com und


Post wurde schon 1x editiert, das letzte mal am 17.10.2018 um 12:34 von Andavos
10.02.2014, 13:27 Profil | PM | E-Mail  
k3ks
Mitglied
Aktiver User


Dabei seit: 25.05.2008
Herkunft: Hamburg
Posts: 150
      Zitat | Bearbeiten

Warum benutzt du anstelle von initial_chart nicht __construct.

Und du solltest dir das mischen von camelcase und underscore abgewöhnen.



11.02.2014, 09:53 Profil | PM | E-Mail  
Htaccess
Mitglied
Sehr guter User


Dabei seit: 22.08.2010
Herkunft: Deutschland
Posts: 742
      Zitat | Bearbeiten

Ich würde nicht auf einen eigenen Warenkorb setzen, sondern auf ein fertiges e-Commerce Shopcms wie z.B. xt:commerce oder Magento setzen.

Zum lernen jedoch ganz nützlich!




Post wurde schon 1x editiert, das letzte mal am 11.02.2014 um 10:35 von Htaccess
11.02.2014, 10:35 Profil | PM | E-Mail  
Andy16823
Mitglied
Aktiver User


Dabei seit: 21.11.2012
Herkunft: keine Angabe
Posts: 139
      Zitat | Bearbeiten

Ich kann gerne noch ein paar funktionen einbauen, bzw. das Installieren, das Einfügen von Artikeln, der Verkauf vorgang etc. Wenn ihr das wollt.


Mein Neues Projeckt:
www.das-java-forum.com und
11.02.2014, 20:28 Profil | PM | E-Mail  
Htaccess
Mitglied
Sehr guter User


Dabei seit: 22.08.2010
Herkunft: Deutschland
Posts: 742
      Zitat | Bearbeiten

An sich für kleine Shops villeicht ganz lustig, aber auch an die Motorik mit der Bezahlmethode gedacht? Wir wird das gemacht bei Lastschrift? Wie erkenne ich die Bank etc. das sind alles Sachen die Magento schon fertig vorinstalliert hat.


12.02.2014, 17:46 Profil | PM | E-Mail  
FalkenaugeMihawk
Mitglied
Perfekter User


Dabei seit: 05.06.2010
Herkunft: Schweiz
Posts: 2619
      Zitat | Bearbeiten

Zitat:
Orginal von Htaccess
An sich für kleine Shops villeicht ganz lustig, aber auch an die Motorik mit der Bezahlmethode gedacht? Wir wird das gemacht bei Lastschrift? Wie erkenne ich die Bank etc. das sind alles Sachen die Magento schon fertig vorinstalliert hat.

Magento ist aber auch eine fertige Software.


12.02.2014, 19:44 Profil | PM | E-Mail  
Maya
Mitglied
Aktiver User


Dabei seit: 26.03.2011
Herkunft: Düsseldorf
Posts: 105
      Zitat | Bearbeiten

das ist kein oop, sondern nur mischmasch.

an deiner stelle würde ich mir anwendungsbeispiele / tutorials angucken wo es auf die struktur der ganzen software ankommt.

Syntaktisch arbeitest du natürlich korrekt, aber das ist noch lange kein objektorientiertes Programmieren


16.02.2014, 19:25 Profil | PM | E-Mail  
Andy16823
Mitglied
Aktiver User


Dabei seit: 21.11.2012
Herkunft: keine Angabe
Posts: 139
      Zitat | Bearbeiten

Natürlich ist das Objekt Orientiert. Es ist auch keine Software, sondern eine Klasse, für einen waren korb. Jede Funktion stellt ein Objekt da, die einfach in den Code eingefügt werden kann und angesprochen werden kann.


Mein Neues Projeckt:
www.das-java-forum.com und
17.02.2014, 11:31 Profil | PM | E-Mail  
RoseRed
Mitglied
Anfänger


Dabei seit: 22.03.2013
Herkunft: keine Angabe
Posts: 59
      Zitat | Bearbeiten

sehr lustig das du echo`s in der Klasse hast


21.02.2014, 10:56 Profil | PM | E-Mail  
splasch
Mitglied
Exzellenter User


Dabei seit: 16.06.2008
Herkunft: Austria
Posts: 2323
      Zitat | Bearbeiten

Streitet euch nicht jeder hat mal angefangen und mit der Zeit wird immer besser.

Ich muss RoseRed zustimmen ausgaben sollte man in keiner Methode machen. Besser du verwendest dafür Rückgabe Werte.
So kann der Anwender deiner Klasse selber immer entscheiden wann und wo welche Ausgabe gemacht werden soll.

Html Formatierungen haben überhaupt nix in einer Methode zu suchen auch wenn es auf den ersten Blick praktisch scheint. So ist das am ende sehr umständlich zu handhaben und auch nicht für den wiederverwendungszweck geeignet. Wofür ja eben OOP vorgesehen ist.






Post wurde schon 1x editiert, das letzte mal am 21.02.2014 um 11:18 von splasch
21.02.2014, 11:18 Profil | PM | E-Mail  
k3ks
Mitglied
Aktiver User


Dabei seit: 25.05.2008
Herkunft: Hamburg
Posts: 150
      Zitat | Bearbeiten

Zitat:
Orginal von splasch
Ich muss RoseRed zustimmen ausgaben sollte man in keiner Methode machen. Besser du verwendest dafür Rückgabe Werte.
So kann der Anwender deiner Klasse selber immer entscheiden wann und wo welche Ausgabe gemacht werden soll.


z.B. könnte der Anwender die Ausgabe an deine Response Klasse weitergeben die für die Ausgabe verantwortlich ist

 PHP 
1:
2:
3:
4:
5:
6:
7:

<?php
// [..]

$response->setContent($chart->getChart());
$response->send();


(jaja da gehört noch ne View-Ebene dazwischen)


07.03.2014, 11:18 Profil | PM | E-Mail  
robertberlin
Mitglied
Neuling


Dabei seit: 11.11.2014
Herkunft: Berlin
Posts: 3
      Zitat | Bearbeiten

Andy vielen Dank fuer die Warenkorb-Klasse.

Genau das hab ich gesucht. Das Prinzip ist mir dadurch klar geworden. Warenkorb als Array in der Session temporaer speichern. Mit PHP-Array Funktionen Artikel in den Warenkorb legen bzw. entfernen.

Schliesse mich allerdings den Vorpostern an keine echo Ausgaben in Methoden zu machen, sondern Ergebnisse nur mit return zurueckgeben. Aber das ist Kosmetik. Deine Klasse funzt + erfuellt seinen Zweck.

Magento und xt::Commerce sind komplette Shop Loesungen. Kann man nicht vergleichen. Kann ich auch fuer meine Zwecke nicht gebrauchen. Ich mag es zu verstehen was abgeht und dadurch an allen Ecken und Enden schrauben zu koennen.

Nochmals besten Dank.
You made my day.



11.11.2014, 06:38 Profil | PM | E-Mail  
slenderlp
Mitglied
Neuling


Dabei seit: 02.09.2015
Herkunft: keine Angabe
Posts: 1
      Zitat | Bearbeiten

Hey könnte mir mal jemand genau erklären wie ich da was hinzufüge das kapier ich nicht!


02.09.2015, 18:40 Profil | PM | E-Mail  
einfach112
Mitglied
Neuling


Dabei seit: 09.08.2020
Herkunft: keine Angabe
Posts: 1
     verstehe ich auch nicht... Zitat | Bearbeiten

moinsen..... ja schon ein paar jahre her..... aber eigentlich genau das was ich brauche....
Aber mit Klassen und Arrays kenne ich mich leider nicht aus....
Ich habe eine mysql DB welche ähnliche DB Spalten hat.

Aber wie kann ich jetzt sagen Sinngemäß:

Select * from produkte where ID = 1 und dann
add to warenkorb!?
Wie wann wo muss ich dieses array erstellen?!
kann ich einfach testweise erstmal ein passendes array erstellen direkt auf einer Seite vonwegen :
$array =(123,456,789)

?!?!
Wie gesagt verstehe das ganze noch nicht ganz so

vielen Dank im voraus


09.08.2020, 20:51 Profil | PM | E-Mail  
Seiten (1):  1 
PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » Einfacher Warenkorb OOP mit Klasse   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz