Ankündigung

Einklappen
Keine Ankündigung bisher.

Warenkorb, mehrere Artikeln nacheinander ausgeben aber wie ?

Einklappen

Neue Werbung 2019

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

  • Warenkorb, mehrere Artikeln nacheinander ausgeben aber wie ?

    Guten Tag

    Ich bin gerade an einem Online shop dran und habe schon alles fertig bis auf den Warenkorb. Ich schaffe es zwar, dass ich ein Produkt auswählen kann und die Produktnummer zum Warenkorb geht und ich durch die dann alle Angaben aus der Datenbank auslassen kann.
    Aber wie kann ich eine Schleife machen, dass ich eine unbestimmte Menge an Artikeln nach einander auflisten kann?

    Hier ist mal den Script vom Warenkorb.



    PHP-Code:



    <?php

    session_start
    ();

    ?>


    <?php


    include("includes/language.php");

    include(
    "lang/".$lang_file);


         
    ?>



    <!DOCTYPE html>
    <php>

     <head>

          <title>Warenkorb</title>

        <meta property="og:url"           content="http://www.onlineshop.com" />

        <meta property="og:type"          content="website" />

        <meta name="viewport" content="width=device-width, initial-scale=1.0 user-scalable=yes">

        <meta http-equiv="X-UA-Compatible" content="IE=Edge" />

        <meta charset="UTF-8">

        <script src="http://code.jquery.com/jquery-latest.js"></script>

        <link rel="stylesheet" href="css/Warenkorb.css" type="text/css" >

        <link rel="stylesheet" href="css/footer.css" type="text/css">

        <link rel="stylesheet" href="css/menubardark.css" type="text/css">

         <link rel="stylesheet" href="css/Titel-dunkel.css" type="text/css">

        <link rel="icon" type="image/png" href="siteimag/icon.png">

        </head>





        <body id="body">


             <div id="container">



          <div id="main-header" >

             <?php include("includes/menubar.php");


            
    ?>              


            </div> <!---------main-header--->





    <div id="Warenkorb">


        <div class="InhaltWarenkorb">

               <div ><table id="Titel"><tr><td class="TitelTd">Warenkorb</td></tr></table></div>


    <h3>Warenkorb</h3>
    <p>Ihre bisherige Auswahl:</p>

    <table border="1">
    <tr>
       <td><b>Artikel</b></td>
       <td><b>Nr.</b></td>
       <td><b>Einzelpreis</b></td>
       <td><b>Anzahl</b></td>
       <td><b>Gesamtpreis</b></td>
    </tr>



                <?php


    $db 
    mysqli_connect('localhost','Testuser','1234','Onlineshop');


    $warenkorb $_SESSION['warenkorb'];
                        echo 
    $warenkorb;


        
    $sql "SELECT * FROM Product WHERE ProductID ='$warenkorb'  LIMIT 1 " ;

        
    $res mysqli_query($db$sql);
         
    $dsatz mysqli_fetch_assoc($res);


        if (
    $dsatz 0)  {




            echo  
    $dsatz["ProductName"]  ."<br>"



             
    .$dsatz["Color"]  ."<br>"



             
    .$dsatz["Size"]  ."<br>"



             
    .$dsatz["ProductID"]  ."<br>"

             
    .$dsatz["ProductPrice"]  ."<br>";


              
    $ProductN $dsatz["ProductName"];

            
    $ProID $dsatz["ProductID"];


        }else {
             echo 
    "Es geht nicht";
        }



                
    ?>





            </table>       


        </div>


        </div>



         </div>

                 <div class="main-footer">


                <?php include("includes/footer.php"); ?>  



                 </div>


        </body>

    </php>

  • #2
    Hier ein Beispiel : https://www.w3schools.com/php/php_mysql_select.asp

    Kommentar


    • #3
      Du verletzt hier grob das EVA Prinzip, die Datenbankabfrage hat inmitten der Ausgabe nix zu suchen.
      Außerdem hat das Skript wirklich so viele Leerzeilen oder wurden die dir hier vom Editor dazugeschummelt?

      Kommentar


      • #4
        Vielen dank dafür. Aber es ist glaub nicht dass was ich brauche oder zumindest nicht ganz aber bin mir hier noch nicht ganz sicher. Deswegen teste ich mal, ob ich es hin bringe, die Artikel ID aus der Session durch die Datenbank zu schicken und die Produkte Daten aus zugeben ( Was ich ja schon kann ) und sie dann wie im Beispiel in einer while schleife auszugeben. Aber nun stellt sich die Frage, wie ich sie dann in die Session zwischen speicheren kann, so dass man auch noch auf andere Seiten gehen kann und dann wiederkommen kann um zu bezahlen und die Artiekln dann immer noch da sind.

        Zitat von ChromOxid Beitrag anzeigen
        Du verletzt hier grob das EVA Prinzip, die Datenbankabfrage hat inmitten der Ausgabe nix zu suchen.
        Außerdem hat das Skript wirklich so viele Leerzeilen oder wurden die dir hier vom Editor dazugeschummelt?
        Das ist nur ein Test, das kommt dann schon zu oberst vor dem HTML Teil hin und es hat wirklich viele Leehrzeichen. Aber auch nur, weil es eine Testseite ist, wo ich nur schauen, wie ich die Funktion erstelle.

        Kommentar


        • #5
          Ist leider nicht das was ich schon brauche :$ Ausser jemand kann mir sagen, wie ich es schaffe, unbestimmte mengen an werten in einer arry zuspeichern und das über eine variable. So das ich z.B mehrere ProduktID's in einer arry speichern kann die über eine Session zum warenkorb geleitet wird. Welche dann da die daten in der array durch die Datenbank jagt und so immer die dazu gehörigen Werte ausliest .

          Kommentar


          • #6
            Das ist nur ein Test, das kommt dann schon zu oberst vor dem HTML Teil hin und es hat wirklich viele Leehrzeichen. Aber auch nur, weil es eine Testseite ist, wo ich nur schauen, wie ich die Funktion erstelle.
            Wozu brauchst du die Leerzeichen? Damits etwas unleserlicher ist? Entschuldige, aber das damit zu rechtfertigen, dass es nur ein "Test" ist, ist quatsch. Auch einen "Test" kann man halbwegs ordentlich gestalten und die beiden genannten Dinge bedeuten ~0 Mehraufwand.

            Zum Thema, wieso denn unbestimmte Menge? Du weißt doch wieviele Artikel im Warenkorb sind. Anbei spricht auch nichts dagegen eine unbestimmte Anzahl an Werten in einem Array zu speichern, die Größe des Arrays entspricht hier eher den Listen anderer Programmiersprachen und ist dynamisch, du brauchst dich auf keine Arraygröße bei der Erstellung festzulegen.

            Kommentar


            • #7
              Zitat von ChromOxid Beitrag anzeigen
              Wozu brauchst du die Leerzeichen? Damits etwas unleserlicher ist? Entschuldige, aber das damit zu rechtfertigen, dass es nur ein "Test" ist, ist quatsch. Auch einen "Test" kann man halbwegs ordentlich gestalten und die beiden genannten Dinge bedeuten ~0 Mehraufwand.

              Zum Thema, wieso denn unbestimmte Menge? Du weißt doch wieviele Artikel im Warenkorb sind. Anbei spricht auch nichts dagegen eine unbestimmte Anzahl an Werten in einem Array zu speichern, die Größe des Arrays entspricht hier eher den Listen anderer Programmiersprachen und ist dynamisch, du brauchst dich auf keine Arraygröße bei der Erstellung festzulegen.
              Weis ich eben nicht, weil man kann ja als Kunde ein oder auch 10 Artikel auswählen und so bräuchte ich ja eine Arrial wo jeden Wert speichern kann, weil dazu kommt ja auch noch, dass man auch ab und zu neue Produkte in den Shop einfügen will und so muss man dann nicht alles abenderen.

              Kommentar


              • #8
                Weis ich eben nicht, weil man kann ja als Kunde ein oder auch 10 Artikel auswählen
                Davon ist in deinem Skript aber nichts zu sehen. Wie geschieht denn die Auswahl, dass du am Ende nicht weißt wieviele der Nutzer ausgewählt hat?

                Kommentar


                • #9
                  Zitat von ChromOxid Beitrag anzeigen
                  Davon ist in deinem Skript aber nichts zu sehen. Wie geschieht denn die Auswahl, dass du am Ende nicht weißt wieviele der Nutzer ausgewählt hat?

                  Das will ich ja eben abspeichern können. Vielleicht habe ich meine Lage falsch beschrieben. Also ich will, dass wenn jemand einen Artikel aus den Online Shop auswählt, dass dieser im Warenkorb gespeichert wird und wenn noch mehrere Artikel nachkommen, dass die dann auch gespeichert werden. Bis jetzt habe ich erst, dass man einen Artikel nach seiner Wahl auswählen kann. Das bedeutet, dass man die Farbe, das Motive und die Grösse auswählen kann. Und diese drei Funktionen bilden dann die Artikelnummer. Welche dann über eine Session zum Warenkorb weitergeleitet wird.
                  Beim Warenkorb angekommen wird die Session mit der Artikelnummer über die Datenbank ausgewertet. Und wenn die Datenbank einen Artikel mit derselben Nummer findet, dann wird der Artikel mit Namen, grösse Farbe usw im Warenkorb angezeigt.

                  Nun aber will ich, dass man unendlich viele Artikel auswählen kann, welche dann im Warenkorb aufgelistet werden. Und bis jetzt kan es immer nur ein Anzeigen, weil in der Session nur eine Artikeln Nummer gespeichert ist. Eigentlich will ich einen Code erstellen, welche mit nach der Datenbank Abfrage immer die einzelnen Produkte abspeichert, so dass es auch weitere Produkte anzeigt.

                  Kommentar


                  • #10
                    Und ich weiss das es irgend wie geht aber die Frage ist nur wie. Ich hab zwar einen skript, der Funktionieren würde ( von einem PHP Buch) aber den verstehe ich leider einfach nicht.

                    Aber hier mal den scribt ( Eigentlich sind es 4 Seiten aber mich Intressiert nur den Warenkorb):

                    PHP-Code:


                    <?php
                       
                    /* Session starten oder wieder aufnehmen */
                       
                    session_start();
                    ?>
                    <!DOCTYPE html><html><head><meta charset="utf-8"></head><body>
                    <h3>Warenkorb</h3>
                    <p>Ihre bisherige Auswahl:</p>

                    <table border="1">
                    <tr>
                       <td><b>Artikel</b></td>
                       <td><b>Nr.</b></td>
                       <td><b>Einzelpreis</b></td>
                       <td><b>Anzahl</b></td>
                       <td><b>Gesamtpreis</b></td>
                    </tr>




                    <?php
                       
                    /* Arrays einbinden */
                       
                    include "sc_shop.inc.php";

                       
                    /* Falls neue Artikel in den Warenkorb kommen,
                          werden sie in den Session-Array übernommen */
                       
                    if(isset($_GET["abtnr"]))
                       {
                          
                    /* Abteilungsnummer übernehmen */
                          
                    $abtnr $_GET["abtnr"];

                          for(
                    $i=0$i<count($aname[$abtnr]); $i++)
                          {
                             
                    /* Falls Anzahl größer als 0 */
                             
                    if(intval($_POST["anzahl"][$i]) > 0)
                                
                    $_SESSION["anzahl"][$abtnr][$i] =
                                   
                    intval($_POST["anzahl"][$i]);
                             
                    /* Falls keine Anzahl oder Anzahl = 0 */
                             
                    else
                                
                    $_SESSION["anzahl"][$abtnr][$i] = 0;
                          }
                       }

                       
                    /* Ausgabe der Inhalte des Session-Arrays: */
                       /* Gesamteinkaufspreis */
                       
                    $summe 0;

                       
                    /* Alle Abteilungen */
                       
                    for($a=0$a<count($abtname); $a++)
                       {
                          
                    /* Alle Artikel einer Abteilung */
                          
                    for($i=0$i<count($aname[$a]); $i++)
                          {
                             
                    /* Falls dieser Artikel im Session-Array vorhanden ist
                                und die eingetragene Anzahl größer als 0 ist */
                             
                    if(isset($_SESSION["anzahl"][$a][$i])
                                && 
                    $_SESSION["anzahl"][$a][$i] > 0)
                             {
                                echo 
                    "<tr>";
                                echo 
                    "<td>" $aname[$a][$i] . "</td>";
                                echo 
                    "<td>" $artnr[$a][$i] . "</td>";
                                echo 
                    "<td align='right'>"
                                   
                    number_format($preis[$a][$i],2,",",".")
                                   . 
                    " &euro;</td>";
                                echo 
                    "<td align='right'>"
                                   
                    $_SESSION["anzahl"][$a][$i] . "</td>";

                                
                    /* Gesamtpreis für diesen Artikel berechnen */
                                
                    $gp $preis[$a][$i] * $_SESSION["anzahl"][$a][$i];

                                
                    /* Gesamtpreis aktualisieren und ausgeben */
                                
                    $summe += $gp;
                                echo 
                    "<td align='right'>"
                                   
                    number_format($gp,2,",",".") . " &euro;</td>";
                                echo 
                    "</tr>";
                             }
                          }
                       }

                       
                    /* Gesamteinkaufspreis in Session-Array speichern */
                       
                    $_SESSION["summe"] = $summe;



                       
                    /* Gesamteinkaufspreis ausgeben */
                       
                    echo "<tr>";
                       echo 
                    "<td colspan='4'>Gesamteinkaufspreis</td>";
                       echo 
                    "<td align='right'>" number_format($summe,2,",",".")
                          . 
                    " &euro;</td>";
                       echo 
                    "</tr>";
                    ?>




                    </table>
                    <p><a href="sc_shop_d.php">Zur Kasse</a></p>
                    <p><a href="sc_shop_a.php">Zur Startseite</a></p>
                    </body></html>

                    Kommentar


                    • #11
                      PHP-Code:
                      $_SESSION['artikel'] = [];

                      // wenn ein Artikel ausgewählt wird:
                      array_push($_SESSION['artikel'], $artikel); 
                      Beim Speichern durchläufst du das entsprechende Array und schreibst die Teile in die Datenbank

                      Kommentar


                      • #12
                        Zitat von Meister333 Beitrag anzeigen
                        Ich hab zwar einen skript, der Funktionieren würde ( von einem PHP Buch) aber den verstehe ich leider einfach nicht.
                        Dann bleibt dir nichts anderes übrig als dich mit mehrdimensionalen Arrays zu beschäftigen, bis du es verstanden hast.


                        Kommentar


                        • #13
                          Zitat von ChromOxid Beitrag anzeigen
                          PHP-Code:
                          $_SESSION['artikel'] = [];

                          // wenn ein Artikel ausgewählt wird:
                          array_push($_SESSION['artikel'], $artikel); 
                          Beim Speichern durchläufst du das entsprechende Array und schreibst die Teile in die Datenbank
                          Wird dann nicht die Datenbak immer mehr gefühlt, wenn jemand/ oder mehrere seinen kauf wieder abbricht?



                          Zitat von protestix Beitrag anzeigen

                          Dann bleibt dir nichts anderes übrig als dich mit mehrdimensionalen Arrays zu beschäftigen, bis du es verstanden hast.

                          Ich hab mich nun 2 ganze Tage damit beschäftigt und habe auch zum grössten Teil den Script eines Onlineshopes welcher ich durch ein Buch habe verstanden aber irgend wie ist es einfach nicht das was ich brauche
                          Oder gibt es Irgend eine möglichkeit values werte, welche meistens unterschidlich sind in einer array zu speichern? Oder kann man irgend wie die Daten, welche von einer Session kommen und durch die Datenbank gehen um die zugehörenden Produktdaten runterzuholen alle in einer array Speichern? Und wenn dann nun ein neues Produkt aus gewählt wird dies auch einfach das diese dan darunter auf gelistet wird wie bei einer for schleife, einfach das man die werte nicht manuel in eine array schreibt?

                          Kommentar


                          • #14
                            Oder vielleicht hilft es mir weiter, wenn ich wüsste wie diese Funktion gehen würde: Durch ein Input Feld kann man ein x Belibiges Wort eingeben und dies zeigt es unten an. Wenn man nun ein weiteres Wort eingibt, zeigt es das neue Wort unter dem Alten an und immer so weiter:$

                            Kommentar


                            • #15
                              Wird dann nicht die Datenbak immer mehr gefühlt, wenn jemand/ oder mehrere seinen kauf wieder abbricht?
                              Wo siehst du da irgendwo eine Datenbank?
                              Oder gibt es Irgend eine möglichkeit values werte, welche meistens unterschidlich sind in einer array zu speichern?
                              In einem Array speichert man für gewöhnlich unterschiedliche Werte, alles andere ergibt wohl wenig SInn?

                              HTML-Code:
                              Oder vielleicht hilft es mir weiter, wenn ich wüsste wie diese Funktion gehen würde: Durch ein Input Feld kann man ein x Belibiges Wort eingeben und dies zeigt es unten an. Wenn man nun ein weiteres Wort eingibt, zeigt es das neue Wort unter dem Alten an und immer so weiter:$
                              PHP-Code:
                              if(empty($_SESSION['artikel']) {
                                
                              $_SESSION['artikel'] = [];
                              }

                              // wenn ein Artikel ausgewählt wird:
                              array_push($_SESSION['artikel'], $_POST['input']);  

                              foreach (
                              $_SESSION['artikel'] as $artikel {
                                  
                              var_dump($artikel);

                              Mir scheint als ob dir einfach Grundlagen, hier speziell zu Arrays und Schleifen fehlen. Grundlagen sind nötig zum Programmieren, da wirst du nicht rumkommen. Es gibt zig Tausend Tutorials im Internet und einige sind auch ganz gut Ich empfehle Peter Kropff, speziell für seinen Datenbankteil, aber in seinem Tutorial findest du sicher auch was über Arrays.

                              Kommentar

                              Lädt...
                              X