Deutschsprachiges NOF - Forum

Support und Tutorials rund um das Thema NetObjects Fusion

collapse

* Wichtige Mitglieder-Information

Aufgrund der anstehenden gesetzlichen Änderungen in Sachen Datenschutz habe ich am 03.05.2018 eine umfassende Bereinigung unserer Datenbanken vorgenommen.

Bei dieser Bereinigung habe ich alle personenbezogenen und privaten Daten unserer Mitglieder aus den Mitglieder- , Beitrags- und Nachrichtendatenbanken gelöscht.

Konkret von der Löschung betroffen waren hierbei im Wesentlichen folgende Daten:

persönliche Avatare
E-Mail-Adressen
Angaben zum Wohnort
Angaben zum Geschlecht
Angaben zu Alter und Geburtstag
IP-Adressen
Websites und Websitetitel
Signaturen
Angaben zu diversen Messengern
Passwörter
Sicherheitsfragen und -antworten
Angaben zur verwendeten Programmversion
Angaben zum verwendeten Betriebssystem
sämtlicher persönlicher Schriftverkehr in Form privater Nachrichten

Beste Grüße nettesekel

* Friendship

DER Katzenblog – mit tollen Tipps und Ideen für deine Katze(n) <3

Die letzten Beiträge

Autor Thema: PHP und MySQL -> Erstellung einer kleinen Shoplösung  (Gelesen 2549 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Hans K.

  • Gast
PHP und MySQL -> Erstellung einer kleinen Shoplösung
« am: 03. Juni 2013, 21:36:35 »
Hin und wieder kommt es vor, dass ein kleiner Shop benötigt wird. Dieser kann durchaus mit PHP und einer MySQL Datenbank realisiert werden.

Dabei ist allerdings zu bedenken, es handelt sich hierbei nicht um eine vollwertige Lösung mit allen erdenklichen Funktionen. Beispielsweise ist es nicht möglich Artikel mit Stückzahlen zu verwalten. Sollten mehrere gleiche Artikel benötigt werden, müssen diese als weitere Artikel hinzugefügt werden.

Sicherlich kann das Script in einigen Punkten erweitert werden, aber wir wollen zunächst einmal den Shop erstellen.  :)

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #1 am: 03. Juni 2013, 21:42:11 »
Als erstes wird der Speicherplatz für die Artikel geschaffen. Dafür muss eine Tabelle in der MySQL Datenbank angelegt werden (Zugang ist der Anleitung des Providers zu entnehmen).

Die Tabelle bekommt die Bezeichnung: Shop

Benötigt werden 3 Felder:
ID - eine fortlaufende ID, welcher die Funktion auto_increment vergeben werden muss (automatischer Zähler)
Produkt - die Artikel
Preis - der Preis der Artikel

Die Felder müssen noch als Typ definiert werden:

ID              int(11)
Produkt     Text
Preis         int(11)

int(11) ist ein reines Zahlenfeld, text ist ein reines Textfeld ohne Einschränkung.

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #2 am: 03. Juni 2013, 21:49:16 »
Damit wir auch Ergebnisse sehen, geben wir zunächst Daten in der Datenbank ein. Wir können das entweder per Formular machen (http://www.nof-community.de/index.php?topic=995.0 oder direkt in der MySQL-Datenbank.

Da wir die Tabelle gerade eben in der Datenbank angelegt haben, macht es Sinn diese direkt in der Datenbank einzufügen. Also über "Einfügen" legen wir nun Artikel an. Dabei müssen wir nur den Artikel und den Preis eintragen, die ID generiert sich selber.

Wir tragen vier Artikel ein:
Produkt 1 Fernseher       500
Produkt 2 Motorrad         4599
Produkt 3 Handy             400
Produkt 4 Radio              299

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #3 am: 03. Juni 2013, 21:52:16 »
Nun erstellen wir mit NOF eine neue Seite, welche wir auf PHP umstellen:
Umstellung der Seite auf PHP

Dann wird die Verbindung zu der MySQL Datenbank hergestellt.
Verbindung zur MySQL Datenbank herstellen

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #4 am: 03. Juni 2013, 22:00:17 »
In den Layout-Eigenschaften haben wir den Code für die Datenbankverbindung eingegeben, diesen ergänzen wir nun:

Code: PHP
  1. <?php
  2. include("./html/datenbank.php");
  3.  
  4.  
  5. if($_GET['action']=='add'){
  6.     echo "<div>" . $_GET['produkt'] . " wurde dem Warenkorb hinzugefügt.</div>";
  7. }
  8.  
  9. if($_GET['action']=='exists'){
  10.     echo "<div>" . $_GET['produkt'] . " liegt bereits im Warenkorb.</div>";
  11. }
  12.  
  13. $sql="SELECT ID, Produkt, Preis FROM Shop";
  14. $result = mysql_query($sql);
  15.  
  16. $num = mysql_num_rows($result);
  17.  
  18. ?>

Mit GET['action'] wird abgefragt, ob ein Artikel bereits im Warenkorb liegt, oder ob er hinzugefügt wurde (nach Betätigung des Buttons hinter dem Artikel).
Mit der sql-Abfrage werden alle Artikel ausgelesen, welche in der Datenbank vorhanden sind.

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #5 am: 03. Juni 2013, 22:17:19 »
Nun ziehen wir ein Textfeld auf und geben im HTML-Tag folgenden Code vor dem Tag ein:

Code: PHP
  1. <?php
  2. $cartItemCount = count($_SESSION['cart']);
  3. ?>
  4.  
  5. <div>
  6. <a href='produktliste.php'>Produktliste[/url]
  7. <a href='warenkorb.php'>Warenkorb <?php echo "({$cartItemCount})";?>[/url]
  8. </div>
  9.  
  10. <?php
  11.  
  12. if($num>0){
  13. echo "<table border='0'>";
  14. echo "<tr>";
  15.  echo "<th>Produkt</th>";
  16. echo "<th>Preis (Euro)</th>";
  17. echo "<th>Action</th>";
  18. echo "</tr>";
  19.        
  20. while ($row = mysql_fetch_array($result)) {
  21.  
  22. echo "<tr>";
  23. echo "<td>". $row["Produkt"]. "</td>";
  24. echo "<td>". $row["Preis"]. "</td>";
  25. echo "<td>";
  26. echo "<a href='addtocart.php?id=". $row["ID"]. "&produkt=". $row["Produkt"]. "'>";
  27. echo "<img src='images/kaufen.png' title='Artikel in den Warenkorb legen' />";
  28. echo "[/url]";
  29. echo "</td>";
  30. echo "</tr>";
  31. }
  32.  
  33. echo "</table>";
  34. }
  35.  
  36. else{
  37. echo "Aktuell wird kein Artikel zum Kauf angeboten.";
  38. }
  39. ?>

In den ersten Zeilen
<a href='produktliste.php'>...
<a href='warenkorb.php'>...
müssen wir die Namen der Seiten in NOF angeben. Also die Seite welche wir gerade erstellen, ist die produktliste

Außerdem gibt es noch die Seite addtocart
echo "<a href='addtocart.php

Zudem gibt es noch Bilder, welche der User anklicken soll:
echo "<img src='images/kaufen.png

Diese Bilder müssen noch erstellt werden und im Ordner images abgelegt werden.

Nach dem Tag ist noch das einzugeben:
Code: HTML5
  1. -->
« Letzte Änderung: 03. Juni 2013, 22:19:50 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #6 am: 03. Juni 2013, 22:27:32 »
Wenn bis hierhin alles korrekt eingeben ist, sollten wir bereits ein Ergebnis sehen.

Dabei haben wir zwei Links mit eingefügt, um zwischen der Artikelseite und dem Warenkorb wechseln zu können:
Produktliste Warenkorb ()

(Die Zahl 4 auf dem Bild im Link Warenkorb ist die Anzahl der Artikel, welche sich im Warenkorb befindet. Diese sehen wir erst, wenn die nächste Seite angelegt wird, damit die Buttons funktionieren).  ;-)

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #7 am: 03. Juni 2013, 22:35:17 »
Als Nächstes legen wir eine weitere Seite in NOF an. Diese nennen wir addtocart - den Namen hatten wir eben auf der Produktseite verwendet.

Die Seite stellen wir ebenfalls auf PHP um und in den Layout-Eigenschaften geben wir folgenden Code ein:

Code: PHP
  1. <?php
  2.  
  3. $ID = $_GET['id'];
  4. $Produkt = $_GET['produkt'];
  5.  
  6. if(!isset($_SESSION['cart'])){
  7. $_SESSION['cart'] = array();
  8. }
  9.  
  10. if(in_array($ID, $_SESSION['cart'])){
  11.  
  12. header('Location: produktliste.php?action=exists&id' . $ID . '&produkt=' . $Produkt);
  13. }
  14.  
  15. else{
  16. array_push($_SESSION['cart'], $ID);
  17.    
  18. header('Location: produktliste.php?action=add&id' . $ID . '&produkt=' . $Produkt);
  19. }
  20.  
  21. ?>

Damit ist die Seite auch schon fertig und kann publiziert werden. Diese Seite ist nur für den Code, die User werden diese nicht sehen.

Mit dieser Seite wird die Artikel-ID in einer Session abgelegt. Dieses ist erforderlich, damit wir die Artikel auch zum Warenkorb "mitnehmen" können.

Ist die Seite online, funktionieren die Buttons hinter den Artikeln bereits. Wir können nun alle Artikel hinzufügen.

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #8 am: 03. Juni 2013, 22:39:55 »
Nun erstellen wir eine weitere Seite in NOF, welche den Namen warenkorb bekommt. Auch diesen Namen haben wir bereits in der Produktseite festgelegt.

Wie gehabt stellen wir auf PHP um:
Umstellung der Seite auf PHP

und stellen die Verbindung zu der MySQL Datenbank her.
Verbindung zur MySQL Datenbank herstellen

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #9 am: 03. Juni 2013, 22:41:20 »
In den Layout-Eigenschaften haben wir den Code für die Datenbankverbindung eingegeben, diesen ergänzen wir nun:

Code: PHP
  1. <?php
  2.  
  3.  
  4. if($_GET['action']=='removed'){
  5. echo "<div>" . $_GET['produkt'] . " wurde aus dem Warenkorb gelöscht.</div>";
  6. }
  7.    
  8. if(isset($_SESSION['cart'])){
  9. $IDs = "";
  10. foreach($_SESSION['cart'] as $ID){
  11. $IDs = $IDs . $ID . ",";
  12. }
  13.  
  14. $IDs = rtrim($IDs, ',');
  15.      
  16. $sql = "SELECT ID, Produkt, Preis FROM Shop WHERE ID IN ($IDs)";
  17. $result = mysql_query($sql);
  18.        
  19. ?>

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #10 am: 03. Juni 2013, 23:03:15 »
Nun ziehen wir ein Textfeld auf und geben im HTML-Tag folgenden Code vor dem Tag ein:

Code: PHP
  1. <?php
  2.  
  3. $cartItemCount = count($_SESSION['cart']);
  4. ?>
  5.  
  6. <div>
  7. <a href='produktliste.php'>Produktliste[/url]
  8. <a href='warenkorb.php'>Warenkorb <?php echo "({$cartItemCount})";?>[/url]
  9. </div>
  10.  
  11. <?php
  12.  
  13. if($cartItemCount>0){
  14. echo "<table border='0'>";
  15. echo "<tr>";
  16. echo "<th>Produkt</th>";
  17. echo "<th>Preis (Euro)</th>";
  18. echo "<th>Action</th>";
  19. echo "</tr>";
  20.                
  21. $totalPrice = 0;
  22.  
  23. while ($row = mysql_fetch_array($result)){
  24.                    
  25. $totalPrice += $row["Preis"];
  26.                    
  27. echo "<tr>";
  28. echo "<td>". $row["Produkt"]. "</td>";
  29. echo "<td>". $row["Preis"]. "</td>";
  30. echo "<td>";
  31. echo "<a href='removefromcart.php?id=". $row["ID"]. "&produkt=". $row["Produkt"]. "'>";
  32. echo "<img src='images/loschen.png' title='Artikel aus dem Warenkorb löschen' />";
  33. echo "[/url]";
  34. echo "</td>";
  35. echo "</tr>";
  36. }
  37. echo "<tr>";
  38. echo "<th>Gesamtpreis</th>";
  39. echo "<th>{$totalPrice}</th>";
  40. echo "<th></th>";
  41. echo "</tr>";
  42.  
  43. echo "</table>";
  44.  
  45.             echo "[br /]<div><a href='checkout.php'>";
  46.             echo "<img src='images/bestellen.png' title='Artikel bestellen.' />";
  47.                             echo "[/url]";
  48.  
  49. }else{
  50. echo "<div>Noch keine Artikel im Warenkorb.</div>";
  51. }
  52.  
  53. }else{
  54. echo "<div>Noch keine Artikel im Warenkorb.</div>";
  55. }
  56. ?>
  57.  
  58. <!--

Es gibt somit die Seite removefromcart, welche wir noch anlegen müssen.
echo "<a href='removefromcart.php

Zudem gibt es noch Bilder, welche der User anklicken soll:
echo "<img src='images/loschen.png
echo "<img src='images/bestellen.png

Diese Bilder müssen noch erstellt werden und im Ordner images abgelegt werden.

Nach dem Tag ist noch das einzugeben:
Code: HTML5
  1. -->
« Letzte Änderung: 04. Juni 2013, 21:33:29 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #11 am: 03. Juni 2013, 23:07:16 »
Wenn erneut alles korrekt ist, sollten wir nun den Warenkorb sehen:
« Letzte Änderung: 04. Juni 2013, 21:34:57 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #12 am: 03. Juni 2013, 23:10:02 »
Als Nächstes legen wir eine weitere Seite in NOF an. Diese nennen wir removefromcart - den Namen hatten wir eben im Warenkorb verwendet.

Die Seite stellen wir ebenfalls auf PHP um und in den Layout-Eigenschaften geben wir folgenden Code ein:

Code: PHP
  1. <?php
  2.  
  3. $ID = $_GET['id'];
  4. $Produkt = $_GET['produkt'];
  5.  
  6. if(!isset($_SESSION['cart'])){
  7.     $_SESSION['cart'] = array();
  8. }
  9.  
  10. $_SESSION['cart'] = array_diff($_SESSION['cart'], array($ID));
  11.  
  12. header('Location: warenkorb.php?action=removed&id=' . $ID . '&produkt=' . $Produkt);
  13. ?>

Damit ist die Seite auch schon fertig und kann publiziert werden. Diese Seite ist nur für den Code, die User werden diese nicht sehen.

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #13 am: 03. Juni 2013, 23:15:12 »
Als Letztes legen wir eine weitere Seite in NOF an. Diese nennen wir checkout - den Namen hatten wir eben im Warenkorb verwendet.

Die Seite stellen wir ebenfalls auf PHP um und in den Layout-Eigenschaften geben wir folgenden Code ein:

Code: PHP
  1. <?php
  2. include("./html/datenbank.php");
  3.  
  4.  
  5. if(isset($_SESSION['cart'])){
  6. $IDs = "";
  7. foreach($_SESSION['cart'] as $ID){
  8. $IDs = $IDs . $ID . ",";
  9. }
  10.  
  11. $IDs = rtrim($IDs, ',');
  12.  
  13. $sql = "SELECT ID, Produkt, Preis FROM Shop WHERE ID IN ($IDs)";
  14. $result = mysql_query($sql);
  15.  
  16. $admin= 'Webmaster@meineSeite.de';
  17. $subject= "Neuer Kauf getätigt";
  18. $message = "";
  19.  
  20. while ($row = mysql_fetch_array($result)){
  21.  
  22. $message .= "Produkt: ";
  23. $message .= $row["Produkt"];
  24. $message .= " für den Preis von ";
  25. $message .= $row["Preis"];
  26. $message .= " Euro.
  27. ";
  28.  
  29. }
  30.  
  31. mail($admin, $subject, $message, "From:$admin");
  32.  
  33.  
  34. }
  35.  
  36. header('Location: produktliste.php');            
  37. ?>
  38.  

Dabei wird bei Webmaster@meineSeite.de die Mailadresse eingegeben, wo die Bestellmail ankommen soll und "Neuer Kauf getätigt" ist die Betreffzeile der Mail.

Wenn die Mail gesendet wird, lösen wir die Session auf und der Warenkorb ist leer.
Auch diese Seite sieht der User nicht und kann nun publiziert werden.
« Letzte Änderung: 04. Juni 2013, 21:44:43 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung einer kleinen Shoplösung
« Antwort #14 am: 04. Juni 2013, 21:51:31 »
Damit ist die kleine Shoplösung fertig.

Sicherlich gibt es diverse Möglichkeiten, den Kaufabschluss umzusetzen. Anstelle einer Bestellmail kann man die Daten auch in eine weitere Datenbank schreiben, oder auch Beides...

Viel Spaß damit.  :)

Deutschsprachiges NOF - Forum

Support und Tutorials rund um das Thema NetObjects Fusion