Warenkorb

DANKE, werd mir die Funktionen anschaun
Wollte es eh schon mit FUnktionen machen, nur wusste ich nicht wie ich die FUnktion aufrufen kann, wenn ich auf einen Link drücke!

Manche Probleme konnte ich dann doch selber lösen, aber bei dem stehe ich an :-(

Damit ein Artikel nicht doppelt im Warenkorb enthalten ist, möchte ich vorher schaun ob die Artikelnummer schon im Warenkorb ist

Ich habs mir so vergestellt nur geht das ned *g*

PHP:
for($i=0;$i<count($_SESSION["ArtNr"]);$i++)
		{
			if($_SESSION["$ArtNr"][$i]=='$Artikelnummer' && $_SESSION["Stk"][$i]=='$Stueck')
			{
				$_SESSION["Stk"][$i]=$Stueck;
				echo"UPDATE<br>";	
			}
			else
			{
				$_SESSION["ArtNr"][]=$Artikelnummer;
				$_SESSION["Stk"][]=$Stueck;
				echo"NEU<br>";
			}
		};

Es ergeben sich dabei 2 Probleme
PHP:
for($i=0;$i<count($_SESSION["ArtNr"]);$i++)
Hier schon mal das 1.
i=0 ; count =0, weil noch nix im array ist -> ABSTURZ ;-)

2. Problem
Ich will das zuerst nur die IF schleife durchlaufen wird, erst wenn FOR fertig ist, und man die IF nicht ausführen konnte, dann soll erst ein neuer Inhalt im Array angelegt werden

Weil jetzt, wenn IF NEIN, dann ELSE -> und das ist ja nicht der Sinn der Sache

VIELEN DANK
Frankster
 
1. Problem: es kommt zu keinem Absturz. Die Schleife wird nicht durchlaufen. Das ist alles.

2. Problem: Mach dir eine Variable $check z.B.
Jedesmal wenn eine der nicht gewollten IF-Fälle durchlaufe wird $check++;
Am Ende fragst du dann $check ab. if ($check > 0) dann wurde es einmal aufgerufen.
 
HALLO LEUTE!

Hier folgt die Lösung für mein Überprüfungsproblem:

Voll Easy :-)

PHP:
<?php

$check=0;
for($i=0;$i<=count($_SESSION["ArtNr"]);$i++)
        {
            if($_SESSION["ArtNr"][$i]==$Artikelnummer)
            {
                $_SESSION["Stk"][$i]=$Stueck;
                echo"UPDATE<br>"; 
                $check=1;  
            }
        };

  if($check==0)
  {
  $_SESSION["ArtNr"][]=$Artikelnummer;
  $_SESSION["Stk"][]=$Stueck;
  echo"$Stueck";
  echo"NEU<br>";
  }       
 	
?>
 
WARUM ;)

ich habe ein <input type ="text"> feld, in diese feld geb ich meine Stückzahl ein.

IE:
Wenn der Cursor in diesem Feld blinkt, und ich drücke Enter, dann verschwindet der Hintergrund und er fügt keine Daten in den Warenkorb ein.
Durch method=POST wird das einfügen.php file geöffnet, das zuständig für das Überprüfen der Artikel ist, ob sie bereits im Warenkorb sind, sowie auch die eingegeben Stückzahl grösser 0 ist und führt anschliessen parent.Inhalt.location.href='shop.php'; aus.
Wenn der Button gedrückt wird, wird alles so ausgeführt wie ich es will, aber wenn man nur enter drückt, dann wird gar nix gemacht

Opera:
Funktioniert mit ENTER

Ist das ein typisches verhalten für den IE, oder hab ich was falsch gemacht ?

Mfg
Frankster
 
Hi!

Ich hab mir das mal alles in Ruhe durchgelesen, da ich auch einen Shop programmieren will.
Jetzt hab ich folgendes Problem:

Es klappt alles wunderba außer Folgendes:

Wenn ich etwas aus meinem Warenkorb lösche dann stimmt die Stückzahl nicht mehr.

Ich zeig euch das Prpblem anhand eines Beispieles:

Produnkte im Warenkorb:

Nr Typ Stück Preis

1. Festplatte 5 500 €
2. Rohlinge 10er Pack 2 20 €


Soweit sogut. Wenn ich jetzt jedoch Nr 1 per Button, den ich noch an die rechte Seite angehängt hab bei jedem Artikel, löschen will, dann sieht das ganze aber so aus:

Nr Typ Stück Preis

1. Rohlinge 10er Pack 5 20 €

Es hat also alles geklappt außer die Stückzahl die verruscht nicht.

Hier der Quellcode meiner warenkorb.php

PHP:
<HEAD>
<TITLE></TITLE>
<link href="../../shop.css" type="text/css" rel="stylesheet" media="screen">
</HEAD>

<? session_start();
?>

<?
echo "<TABLE border=0 cellPadding=4 cellSpacing=1 class=tableinborder
      style='WIDTH: 98%'>
        <TBODY>
        <TR>
          <TD align=left class=tablecat colSpan=2><SPAN
            class=normalfont><B><u>Warenkorb</u></B></SPAN></TD></TR>
        <TR>
          <TD align=left class=tabletitle colSpan=2><SPAN
            class=smallfont>Hier können Sie Ihren Einkauf zusammenstellen...</SPAN></TD></TR>
    <TABLE border=0 cellPadding=4 cellSpacing=1 class=tableinborder
      style='WIDTH: 98%'>
        <TR align=left>
            <TD class=tablea width=5><SPAN class=normalfont><B>Nr.:</B></SPAN></TD>
            <TD class=tablea width=346><SPAN class=normalfont><B>Bezeichnung:</B></SPAN></TD>
            <TD class=tablea width=10><SPAN class=normalfont><B>Stück:</B></SPAN></TD>
            <TD class=tablea width=10><SPAN class=normalfont><B>Preis/Stk:</B></SPAN></TD>
            <TD class=tablea><SPAN class=normalfont><B>Preis:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</B></SPAN></TD>
            <TD class=tablea width=5><SPAN class=normalfont><B><img src=../../bilder/tausch.gif></B></SPAN></TD>
            <TD class=tablea width=5><SPAN class=normalfont><B><img src=../../bilder/del.gif></B></SPAN></TD>
        </b></tr>";


    $Verbindung = mysql_connect("localhost","root","");
        for($i=0;$i<count($_SESSION["ArtNr"]);$i++)

        {
             $Artikelnummer = $_SESSION["ArtNr"][$i];
             $Stuck = $_SESSION["Stk"][$i];
             $lf=$i+1;

             $SQLString = "SELECT * FROM Artikel WHERE Artikelnummer=$Artikelnummer";
             $Ergebnis = mysql_db_query(project, $SQLString, $Verbindung);
             $info = mysql_fetch_array($Ergebnis, MYSQL_ASSOC);


             $GesamtStuckPreis = $info["Preis"]*$Stuck;
              $X = $GesamtStuckPreis + $X;

             if ($lf>=1)
             {
             echo "<TR align=left>
                <TD class=tableb><center><SPAN class=normalfont><B>$lf</B></SPAN></center></TD>
                <TD class=tableb width=346><SPAN class=normalfont><B>".$info["Bezeichnung"]."</B></SPAN></TD>
                <TD class=tableb><center><SPAN class=normalfont><B>$Stuck</B></SPAN></center></TD>
                <TD class=tableb><SPAN class=normalfont><B>".$info["Preis"]." €</B></SPAN></TD>
                <TD class=tableb><SPAN class=normalfont><B>".($info["Preis"]*$Stuck)."  €</B></SPAN></TD>
                <TD align= \"center\" class=tableb><SPAN class=normalfont><B><a href=\"renfrombasket.php\"><img src=\"../../bilder/tausch.gif\"></a></B></SPAN></TD>
                <TD align= \"center\" class=tableb><SPAN class=normalfont><B><a href=\"warenkorb.php?loeschen=$Artikelnummer&k=$i\"><img src=\"../../bilder/del.gif\"></a></B></SPAN></TD>
            </tr>";
            }
}

            if ($lf==0)
            {echo "<TR align=left>
                <TD class=tableb><center><SPAN class=normalfont><B>&nbsp;</B></SPAN></center></TD>
                <TD class=tableb width=346><SPAN class=normalfont><B>Momentan sind keine Artikel in Ihrem Warenkorb!</B></SPAN></TD>
                <TD class=tableb><center><SPAN class=normalfont><B>&nbsp;</B></SPAN></center></TD>
                <TD class=tableb><SPAN class=normalfont><B>&nbsp;</B></SPAN></TD>
                <TD class=tableb><SPAN class=normalfont><B>&nbsp;</B></SPAN></TD>
                <TD align= \"center\" class=tableb width=5><SPAN class=normalfont><B>&nbsp;</B></SPAN></TD>
                <TD align= \"center\" class=tableb width=5><SPAN class=normalfont><B>&nbsp;</B></SPAN></TD>
            </tr>";}

            echo "<TR align=left>
                <TD class=tablea colspan=2><center><SPAN class=normalfont><B>&nbsp;</B></SPAN></center></TD>

                <TD class=tablea colspan=2><center><SPAN class=normalfont><B>Gesamtpreis:</B></SPAN></center></TD>

                <TD class=tablea><SPAN class=normalfont><B>$X&nbsp;€</B></SPAN></TD>
                <TD class=tablea colspan=2><center><SPAN class=normalfont><B>&nbsp;</B></SPAN></center></TD>

            </tr>";

        echo "</table>";
?>

<?
if ($loeschen)
{
unset($ArtNr[$k]);
$_SESSION["ArtNr"] = array_values($_SESSION["ArtNr"]);
};
?>

<?
if($i<1)
{session_destroy(); }
?>

Was ist falsch
Bitte helft mir... :)

Danke schonmal im voraus für eure Antworten.

greetz
 
Ich denke es liegt daran:
PHP:
if ($loeschen)
{
unset($ArtNr[$k]);
$_SESSION["ArtNr"] = array_values($_SESSION["ArtNr"]);
};

Ich schätze das sollte abhelfen:
PHP:
if ($loeschen)
{
unset($ArtNr[$k]);
$_SESSION["ArtNr"] = array_values($_SESSION["ArtNr"]);
unset($Stk[$k]);
$_SESSION["Stk"] = array_values($_SESSION["Stk"]);
};

Ist aber mehr verdacht, da mir unset $var und dann danach $_SESSION["var"] komisch vorkommt.
Wenn, sollte man immer das selbe verwenden.
 
Zurück