Ankündigung

Einklappen
Keine Ankündigung bisher.

Mein kleines Warenkorbsystem

Einklappen

Neue Werbung 2019

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

  • Mein kleines Warenkorbsystem

    Ich hab jetzt mal angefangen ein kleines Warenkorbsystem zu erstellen. Und wollte euch jetzt mal fragen was ich Code mäßig noch verbessern kann? Jetzt zeig ich euch erst mal wie ich die Produkte aus der Datenbank anzeige und mit einem Formular in die Warenkorb Tabelle Schreibe.

    Code:
    <?php
    	echo("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
    	echo("<tr>");
    	echo("<td height=\"10\"></td>");
    	echo("</tr>");
    	echo("</table>");
        $res = mysql_db_query($dbase, "SELECT * FROM produkte");
      $num = mysql_num_rows($res);
     
    	echo("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
    	echo("<tr>");
    	echo("<td height=\"20\">Produkt</td>");
    	echo("<td>Hersteller</td>");
    	echo("<td>Preis</td>");
    	echo("</tr>");
    	for ($i=0; $i<$num; $i++)
      {
      $artikel_id = mysql_result($res, $i, "artikel_id");
      $titel = mysql_result($res, $i, "titel");
      $hersteller = mysql_result($res, $i, "hersteller");
      $preis = mysql_result($res, $i, "preis");
      $mwst = mysql_result($res, $i, "mwst");
      $menge = mysql_result($res, $i, "menge");
        if($Hintergrundfarbe=="#FFFFFF")
    	{
      $Hintergrundfarbe="#F2F2F2";
    	}
      else
    	{
      $Hintergrundfarbe="#FFFFFF";
    	}
      	echo("<form style=\"display:inline\" action=\"shop/pro_eingabe.php\" method=\"post\" name=\"form\">");
    	echo("<input type=\"hidden\" name=\"sid\" value=" . session_id() ." />");
    	echo("<input type=\"hidden\" name=\"artikel_id\" value=\"$artikel_id\" />");
    	echo("<input type=\"hidden\" name=\"titel\" value=\"$titel\" />");
    	echo("<input type=\"hidden\" name=\"hersteller\" value=\"$hersteller\" />");
    	echo("<input type=\"hidden\" name=\"preis\" value=\"$preis\" />");
    	echo("<input type=\"hidden\" name=\"mwst\" value=\"$mwst\" />");
    	echo("<input type=\"hidden\" name=\"menge\" value=\"$menge\" />");
    	echo("<tr bgcolor=\"$Hintergrundfarbe\">");
      	echo("<td width=\"300\" height=\"20\"><a titel=\"weiter\" href=\"index.php?page=detail.php&nav=$nav&det=$artikel_id\" target=\"_self\">$titel</a></td>");
    	echo("<td width=\"100\">$hersteller</td>");
    	echo("<td width=\"70\" align=\"right\">$preis Euro</td>");
    	echo("<td width=\"70\" align=\"right\"><input type=\"image\" src=\"layout/warenkorb.gif\" name=\"senden\"></td>");
    	echo("</form>");
    	echo("</tr>");
      }
      	echo("</tr>");
    	echo("</table>");
    	echo("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
    	echo("<tr>");
    	echo("<td height=\"10\"></td>");
    	echo("</tr>");
    	echo("</table>");
    ?>
    der code für die pro_eingabe.php

    Code:
    <?php
       header("Location: ../index.php?page=warenkorb.php");
      if (strlen($sid=trim($sid))==0)
       die ("sid fehlt.");
      if (strlen($artikel_id=trim($artikel_id))==0)
       die ("artikel_id fehlt.");
      if (strlen($titel=trim($titel))==0)
       die ("titel fehlt.");
      if (strlen($hersteller=trim($hersteller))==0)
       die ("hersteller fehlt.");
      if (strlen($preis=trim($preis))==0)
       die ("preis fehlt.");
      if (strlen($mwst=trim($mwst))==0)
       die ("mwst fehlt.");
      if (strlen($menge=trim($menge))==0)
       die ("menge fehlt.");
        include("../include/mysqldb.php");
      $db = mysql_connect($host, $user, $pass);
      $sqlab = "INSERT into warenkorb (sid,artikel_id,titel,hersteller,preis,mwst,menge) values ('$sid', '$artikel_id', '$titel', '$hersteller', '$preis', '$mwst', '$menge')";
      mysql_db_query($dbase, $sqlab);
       exit();
    ?>
    der Warenkorb

    Code:
    <?php
    	echo("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
    	echo("<tr>");
    	echo("<td height=\"10\"></td>");
    	echo("</tr>");
    	echo("</table>");
      $res = mysql_db_query($dbase, "SELECT * FROM `warenkorb` WHERE `sid` LIKE '". session_id() ."'");
      $num = mysql_num_rows($res);
    	for ($i=0; $i<$num; $i++)
      {
      $id = mysql_result($res, $i, "id");
      $sid = mysql_result($res, $i, "sid");
      $artikel_id = mysql_result($res, $i, "artikel_id");
      $titel = mysql_result($res, $i, "titel");
      $hersteller = mysql_result($res, $i, "hersteller");
      $preis = mysql_result($res, $i, "preis");
      $mwst = mysql_result($res, $i, "mwst");
      $menge = mysql_result($res, $i, "menge");
    
    $mwst_satz = $mwst;
    $einzelpreis = $preis * $menge;
    $einzelmwst = $preis / 100 * $mwst * $menge;
    						
    	if ($mwst_satz == 16)
    $mwst16 = $mwst16 + $einzelmwst;
    	if ($mwst_satz == 7)
    $mwst7 = $mwst7 + $einzelmwst;
    							
    $einzelpreis = sprintf('%.2f', $einzelpreis);
    $einzelmwst = sprintf('%.2f', $einzelmwst);
    $mwst16 = sprintf('%.2f', $mwst16);
    $mwst7 = sprintf('%.2f', $mwst7);	
    
    $gesamtpreis = $gesamtpreis + ($preis * $menge);
    $gesamtpreis = sprintf('%.2f', $gesamtpreis);
    	echo("<table width=\"550\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
    	echo("<tr>");
    	echo("<td bgcolor=\"#7F7F7F\">");
    	echo("<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\">");
    	echo("<tr bgcolor=\"#FFFFFF\">");
    	echo("<td width=\"120\" bgcolor=\"#FFFFFF\">");
      	echo("<form action=\"shop/war_update.php\" method=\"post\" name=\"form\">");
    	echo("<input type=\"hidden\" name=\"id\" value=\"$id\" />");
    	echo("<input type=\"hidden\" name=\"sid\" value=\"$sid\" />");
    	echo("<input type=\"hidden\" name=\"artikel_id\" value=\"$artikel_id\" />");
    	echo("<input type=\"hidden\" name=\"titel\" value=\"$titel\" />");
    	echo("<input type=\"hidden\" name=\"hersteller\" value=\"$hersteller\" />");
    	echo("<input type=\"hidden\" name=\"preis\" value=\"$preis\" />");
    	echo("<input type=\"hidden\" name=\"mwst\" value=\"$mwst\" />");
    	echo("<table width=\"100%\"  border=\"0\" align=\"right\" cellpadding=\"0\" cellspacing=\"0\">");
    	echo("<tr>");
    	echo("<td width=\"20\"><input type=\"text\" name=\"menge\" value=\"$menge\" size=\"4\" /></td>");
    	echo("<td width=\"97\">");
    	echo("<input type=\"image\" src=\"layout/button/aendern.gif\" name=\"senden\" alt=\"Anzahl &auml;ndern\">");
    	echo("</td>");
    	echo("</tr>");
    	echo("</table>");
    	echo("</form>");
    	echo("</td>");
    	echo("<td>$titel</td>");
    	echo("<td align=\"right\" bgcolor=\"#FFFFFF\">$preis Euro</td>");
    	echo("</tr><tr bgcolor=\"#FFFFFF\">");
    	echo("<td align=\"right\" bgcolor=\"#FFFFFF\">");
      	echo("<form action=\"shop/war_loeschen.php\" method=\"post\" name=\"form1\" />");
    	echo("<input type=\"hidden\" name=\"loeschen\" value=\"$id\"/><input type=\"image\" src=\"layout/button/art_loesch.gif\" name=\"senden\" />");
    	echo("</form>");
    	echo("</td>");
    	echo("<td align=\"right\">enthaltene MwSt: $mwst %</td>");
    	echo("<td width=\"100\" align=\"right\" bgcolor=\"#FFFFFF\">$einzelmwst Euro</td>");
    	echo("</tr>");
    	echo("</table>");
    	echo("</td>");
    	echo("</tr><tr> ");
    	echo("<td height=\"5\"><img src=\"images/leer.gif\" width=\"1\" height=\"5\"></td>");
     	echo("</tr>");
    	echo("</table>");
      }
    ?>
    <?php
    	if ($gesamtpreis >= $versandfrei)
     {
    $versandkosten = 0;
     }
    $versandkosten = sprintf('%.2f', 6.9);
    ?>
    	<hr align="right" width="90" size="1">
    <?php 
    	if ($versandkosten != '')
     { 
    ?>
    <p align="right" class=inhaltText>
    
    	enthaltene Mwst 16%: <?=$mwst16 ?>Euro
    
        enthaltene MwSt 7%:  <?=$mwst7 ?>Euro</p>
    <p align="right" class=inhaltText>
    	Versandkosten: <?=$versandkosten ?>Euro
    
    <?php 
    	if ($versandfrei != '' and $versandkosten != 0)
    			  	echo "(ab $versandfrei &euro; Versandkostenfrei)"; 
     }
    $gesamtpreis = $gesamtpreis + $versandkosten;
    $gesamtpreis = sprintf('%.2f', $gesamtpreis);
    					
    				echo "
    <p align=right class=inhaltText>[b]Gesamtpreis: $gesamtpreis Euro<b/></p>";
    ?>
    Eins der Probleme die ich hab ist das jedes Produkt einen neuen Datensatz bekommt wie kann ich das verhindern.

  • #2
    Die Programm-Logik hab ich mir nicht angeguckt.
    Als Verbesserung würde ich mal ganz dringend vorschlagen, nicht für jede Kleinigkeit eine eigene echo-Anweisung einzubauen.

    Die erste Tabelle könntest Du auch so ausgeben:
    PHP-Code:
    <?php
       
    echo("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
         <tr>
           <td height=\"10\"></td>
         </tr>
       </table>"
    ;
    ?>
    oder auch so:
    PHP-Code:
    <?php
       
    echo("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"
         
    ."<tr>"
           
    ."<td height=\"10\"></td>"
         
    ."</tr>"
       
    ."</table>";
    ?>
    Wenn keine PHP-Variablen eingefügt werden sollen, kannst Du auch kurz den PHP-Teil beenden, Deinen statischen Text ausgeben und danach wieder mit PHP weiter machen:

    PHP-Code:
    <?php

    ?>

    <table border="0" cellpadding="0" cellspacing="0">
     <tr>
     <td height="20">[b]Produkt[/b]</td>
       <td>[b]Hersteller[/b]</td>
       <td>[b]Preis[/b]</td>
     </tr>

    <?php

    ?>
    Und wenn Du in den Strings die Attribute der HTML-Tags in ' einschließt, statt in ", sparst Du Dir die Escape-Orgien.

    Kommentar

    Lädt...
    X