SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 06.10.2016, 13:37:57
winnscrew winnscrew ist offline
Anfänger
 
Registriert seit: Oct 2016
Alter: 25
Beiträge: 1
Bau einer Warenkorb Funktion mit löschen und verändern

Hallo,

ich möchte derzeit meine PHP Kenntnisse etwas erweitern und baue aus diesem Grund eine Warenkorb Funktion. Das heißt, ich greife aus einer CSV Datei 6 Produkte (siehe Bild) und durch einen Button füge ich diese dann individuell zu einer warenkorb.csv Datei hinzu.
Nun stoße ich an meine Grenzen des machbaren, ich möchte gerne dass ich die Anzahl der Produkte ändern kann in dem vorderem Input Feld. Sobald ich das ändere, soll die Anzahl die alte Anzahl überschreiben und den Preis Neuberechnen.
Das nächste ist, der X Button der ganz hinten steht soll die Funktion haben, dass ich die komplette Zeile aus der CSV Datei lösche.

Ich habe mich bewusst mich für CSV Dateien entschieden, da ich mich mit MySQL noch überhaupt nicht auskenne.
Ich hoffe ihr könnt mir helfen!
Grüße Joe

artikel.php
PHP-Code:
<?php
 $csvFile 
"products.csv";
    
$handle fopen($csvFile"r");
    
$counter 0;
    echo 
"<div class="products">\r\n";
    
        while(
$data fgetcsv($handle999";")) {
            if (
$counter == 0) { $counter++; continue; }
                
$price $data[3];
                
$price str_replace('.'','$price);  
                    
$img "<img src="Images/".$data[2]."" title="Zum Produkt">";
                    
            echo 
"<div class="Product">\r\n";
                echo 
"<div class="ProductContent">\r\n";
                        echo 
"<div class="ProductImg">".$img."</div>\r\n";
                        echo 
"<div class="ProductName">".$data[1]."</div>\r\n";
                        echo 
"<div class="ProductPrice">".$price."</div>\r\n";
                        echo 
"<form method="POST">";
                            echo 
"<input type="submit" name="Cart" value="$data[0]" ></input>";
                        echo 
"</form>";
                echo 
"</div>\r\n";
            echo 
"</div>\r\n";    
            
$counter++;
            if (
$_POST["Cart"]==$data[0]){
                
$handleBasket fopen('warenkorb.csv','r');
                
$new_content = [];
                
$found false;
                while(
$basketdata fgetcsv($handleBasket999";")) {
                    if (
$basketdata[0] == $data[0]){ //artikelNummer
                        
$basketdata[1] = $data[1]; //artikelname
                        
$basketdata[2] = $basketdata[2]+$data[3]; //gesamtpreis
                        
$basketdata[3] = $data[3]; //einzelpreis
                        
$found true;
                        
$basketdata[4] = $basketdata[4]+1//Anzahl
                        
                    
}
                    
$new_content[] = [ $basketdata[0],$basketdata[1],$basketdata[2],$basketdata[3],$basketdata[4] ];
                }
                
                
fclose($handleBasket);
                
                if (!
$found) {
                    
$new_content[] = [$data[0],$data[1],$data[3],$data[3],1];
                }

                
$handleBasket2 fopen('warenkorb.csv','w');
                foreach (
$new_content as $contentLine) {
                    
fputcsv($handleBasket2 $contentLine";");
                }
                
fclose($handleBasket2);
                    
            }

    }    
    
fclose($handle); 
?>
warenkorb.php
PHP-Code:
<?php    
    $csvFile 
"warenkorb.csv";
    
$handle fopen($csvFile"r");
    
$handlebasket fopen($csvFile"r");
    echo 
"<div class="product">\r\n";
        echo 
"<table>\r\n";
            echo 
"<tr>\r\n";
                echo 
"<th>".'Menge'."</th>\r\n";
                echo 
"<th>".'Artikelnummer'."</th>\r\n";
                echo 
"<th>".'Artikelname'."</th>\r\n";
                echo 
"<th>".'Einzelpreis'."</th>\r\n";
                echo 
"<th>".'Gesamtpreis'."</th>\r\n";
                echo 
"<th>"."</th>\r\n";
            echo 
"</tr>\r\n";
            
$sum 0;
            while(
$data fgetcsv($handle999";")) {
                
$oneprice $data[3];
                
$oneprice str_replace('.'','$oneprice);
                    echo 
"<tr>\r\n";
                        echo 
"<td class="AmountTD">\r\n
                                <form method="
POST">\r\n
                                    <input type="
text" value="$data[4]" class="CartAmount" name="ChCart" title="Eingabe der Menge"> Stück\r\n
                                </form>\r\n
                            </td>\r\n"
;
                        echo 
"<td class="NumberTD">".$data[0]."</td>\r\n";
                        echo 
"<td class="NameTD">".$data[1]."</td>\r\n";
                        echo 
"<td class="PriceTD">".$oneprice."</td>\r\n";
                        echo 
"<td class="PriceTDs">".number_format($data[2], 2',''.')."</td>\r\n";
                        echo 
"<td class="DelTD">\r\n";
                            echo 
"<form method="GET">\r\n";
                                    echo 
"<input type="button" value="X" class="CartDel" name="DelCart" title="Löschen">\r\n";
                            echo 
"</form>\r\n";
                        echo 
"</td>\r\n";
                    echo 
"</tr>\r\n";            
                
$sum $sum+$data[2];
            }
            echo 
$num;
        echo 
"<tr class="EndPrice">\r\n";
            echo 
"<td>Zwischensumme:</td>\r\n";
            echo 
"<td/>\r\n";
            echo 
"<td/>\r\n";
            echo 
"<td/>\r\n";
            echo 
"<td class="PriceSum">".$sum."</td>\r\n";
            echo 
"<td/>\r\n";
        echo 
"</tr>\r\n";
        echo 
"</table>\r\n";
    echo 
"</div>\r\n";
    
fclose($handle);  
?>
Mit Zitat antworten
  #2  
Alt 06.10.2016, 22:23:45
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Bau einer Warenkorb Funktion mit löschen und verändern

Hallo und willkommen hier im Forum.

Was Du erreichen möchstest scheint mir klar. Nur wie können wir Dir dabei helfen? Was hast Du schon? Woran scheitert es im Moment?

Bild???
Struktur der CSV-Dateien?

An verschiedenen Stellen Deines Codes in Verbindung mit echo sind noch Fehler drin. Zum Anzeigen der Fehlermeldungen schalte die Fehleranzeige ein bzw. höher.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 07.10.2016, 11:33:37
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: Bau einer Warenkorb Funktion mit löschen und verändern

Ohne da nun genau auf den Code einzugehen ein zwei grundlegende Überlegungen als Anregung.

CSV-Dateien beinhalten deine Artikel Zeilenweise, du musst also entweder die Zeile oder den Artikel identifizieren können.

Füe die Artikel bieten sich Arrays z.B. in dieser Art an:
PHP-Code:
$artikel[4711]['Name'] = 'IrgendEinArtikel';
$artikel[4711]['Preis'] = 17.5;
$artikel[4711]['Menge'] = 3
Das erleichert Rechnungen, indem man z.B. den Gesamtpreis leicht neu rechnen kann und nicht separat in einer Variablen speichern muss
PHP-Code:
$gesamtpreis $artikel[4711]['Preis'] * $artikel[4711]['Menge']; 
Wenn du Zeilen aus CSV-Dasteien löschen möchtest wäre ein Ansatz, die Datei auch zeilenweise zu lesen und die Zeilen in Variablen abzulegen. Dafür gibt es den file() Befehl.
Das sähe dann ca so aus (ich gehe mal von einem CSV-Aufbau mit Artikelnummer, Bezeichnung, Preis, Menge aus):

PHP-Code:
// Jede Zeile der Datei im Array $csvzeile ablegen
$csvzeile file("products.csv");

/*
 *   nun steht die CSV-Datei Zeilenweise im Array csvzeile
 *   Achtung, PHP beginnt bei NULL zu zählen, Zeile eins liegt also in $csvzeile[0]
*/


for ($i 0$i count($csvzeile); $i++)
{
  
$artikeldata explode(';',$csvzeile[$i]);

  
// Nun die Daten zuweisen
  
$artikel[$artikeldata[0]]['csvzeile'] = $i// Zeilennummer speichern
  
$artikel[$artikeldata[0]]['Name'] = $artikeldata[1]; // Artikelname
  
$artikel[$artikeldata[0]]['Preis'] = $artikeldata[2]; // Artikelpreis
  
$artikel[$artikeldata[0]]['Menge'] = $artikeldata[3]; // Artikelmenge
}

// ab hier kannst du nun deine Daten verarbeiten 
Zum Löschen der Zeile 5 würde es reichen $csvzeile[4] einfach auf leer zu setzen und die Datei neu zu schreiben.

********

Dein Code muss Unmengen an Fehlern werfen, weil du nicht korrekt Escape`st (schreibt man das so? ;-) )

Falsch:
PHP-Code:
echo "<div class="Product">\r\n";
                echo 
"<div class="ProductContent">\r\n";
                        echo 
"<div class="ProductImg">".$img."</div>\r\n";
                        echo 
"<div class="ProductName">".$data[1]."</div>\r\n";
                        echo 
"<div class="ProductPrice">".$price."</div>\r\n";
                        echo 
"<form method="POST">"
Richtig (und lass das \r weg, das ist ein Zeilenvorschub, den brauchst du nicht):
PHP-Code:
echo "<div class=\"Product\">\r\n";
                echo 
"<div class=\"ProductContent\">\n";
                        echo 
"<div class=\"ProductImg\">".$img."</div>\n";
                        echo 
"<div class=\"ProductName\">".$data[1]."</div>\n";
                        echo 
"<div class=\"ProductPrice\">".$price."</div>\n";
                        echo 
"<form method=\"POST\">\n"
Setz dich mit single und double Quotes auseinander, die schönere Schreibweise wäre:
PHP-Code:
echo '<div class="Product">'."\n";
    echo 
'<div class="ProductContent">'."\n";
    echo 
'<div class="ProductImg">'.$img.'</div>'."\n";
    echo 
'<div class="ProductName">'.$data[1].'</div>'."\n";
    echo 
'<div class="ProductPrice">'.$price.'</div>'."\n";
    echo 
'<form method="POST">'
Was zwischen doubleQuotes steht wird PHP versuchen zu interpretieren, das tut es bei single Quotes nicht.
In einem Editor mit Syntaxhighlight würdest du also nun die "\n" andersfarbig sehen und erkennen, dass sie interpretiert werden.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Warenkorb Array - Wert an Stelle i löschen aduruniel PHP Grundlagen 1 10.02.2008 19:03:09
Artikel aus dem Warenkorb löschen? Trivio PHP für Fortgeschrittene und Experten 4 29.08.2007 15:07:57
Warenkorb löschen nach Bestellung McFrosty1 PHP Grundlagen 2 05.02.2007 17:48:51
PHP Funktion aufrufen bweichel PHP Grundlagen 12 30.07.2004 19:48:52
Dateiimport zu mysql Lars_oha PHP für Fortgeschrittene und Experten 10 18.09.2003 08:10:51


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:12:39 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt