php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.12.2011, 16:27  
Benutzer
 
Registriert seit: 13.12.2011
Beiträge: 47
PHP-Kenntnisse:
Anfänger
dula89 befindet sich auf einem aufstrebenden Ast
Standard Shop

Hallo

es geht um folgendes:

ich habe eine funktion angelegt welche mir meinen entsprechenden Artikel in den Warenkorb legen soll.
Allerdings funktioniert dies nur bei der ID(1) bzw. dem ersten Artikel. Ausserdem wird die Auswahl bei erneuten klicken um 1 erhöht.

hier mein Code:

Wenn ich mein zweiten Artikel aus meiner Datenbank hinzufügen will, nimmt er trotzdem den ersten.

PHP-Code:
<?php
class warenkorbx
{
    protected 
$_warenauswahl = array();
    public 
$daten = array();
    
    public function 
bestellen()
    {
        if (!isset(
$_GET['id'])) {
            die(
"Kein Produkt ausgew&auml;hlt.");
        }else {
            
$id $_GET['id'];
        }
        
         
        if(
$this->_checkProductId($id)) {
            if (
$this->_checkCart($id) == true) {
                
$this->_warenauswahl[$id]++;
            } else {
                
                
$this->_warenauswahl[$id] = 1;
            }
        }
        return 
$this;
    }
    
    protected function 
_checkCart($id)
    {
        foreach (
$this->_warenauswahl as $key => $value) {
            if (
$id == $key) {
                return 
true;
            } else {
                return 
false;
            }
        }
        
    }
    
    
/**
     * checks product id against the db
     * 
     * @param type $id
     * @return true or false 
     */
    
protected function _checkProductId($id)
    {
        
#TODO check id in db
        
if(empty($this->daten)) {
            
$this->lese_db();
        }
        
        
        foreach (
$this->daten as $key => $product) {
            if (
$product['nummer'] == $id) {
                return 
true;
            } else {
                return 
false;
            }
        }
        
    }
    
    public function 
lese_db()
    {
        
// 1. Zugriff zum Datenbankserver aufbauen:
        
$verbindung mysql_connect("localhost""root""");
        
// 2. Datenbank auswählen:
        
mysql_select_db("shop"$verbindung);
        
// 3. SQL-Befehl erzeugen:
        
$sql "SELECT * FROM bier_weiss";
        
/// ... und ausführen:
        
$result mysql_query($sql);
        
        
// nun können Daten "verarbeitet" werden:
        // meist, in dem man das "result" Datensatz für Datensatz durchläuft
        
$this->daten = array();
        while( 
$zeile mysql_fetch_assoc($result))
        {
            
$datensatz = array(
                
"nummer"      => $zeile["ID"],
                
"name"         => $zeile["Name"],
                
"bild" => $zeile["bild"],
                
"text"       => $zeile["langtext"],
                
"preis"  => $zeile["Preis"],
                
"artikelnr"    => $zeile["Aritkelnr"],
            );
            
$this->daten[] = $datensatz;        
        }
        
        
// am Ende Datenbankverbindung trennen:
        
mysql_close($verbindung);
    }
    
/*
     * 
     
    public function schreibe_db()
    {
        foreach ($this->daten as $d) {
            echo "
                $d[name]
            ";
        }
    }
    */
    
    
public function getCartData() 
    {
        return 
$this->_warenauswahl;
    }
}
?>

Geändert von dula89 (13.12.2011 um 16:44 Uhr).
dula89 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.12.2011, 16:32  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

„geht nicht / funktioniert nicht...“ ist keine sinnvolle Fehlerbeschreibung
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.12.2011, 16:59  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
PHP-Code:
    protected function _checkCart($id)
    {
        foreach (
$this->_warenauswahl as $key => $value) {
            if (
$id == $key) {
                return 
true;
            } else {
                return 
false;
            }
        }
        
    } 
Hier liegt das Problem... du untersuchst nur das erste Element und lieferst dann auf jeden Fall true oder false zurück.

So müsste es aussehen:
PHP-Code:
    protected function _checkCart($id)
    {
        foreach (
$this->_warenauswahl as $key => $value) {
            if (
$id == $key) {
                return 
true;
            }
        }
        return 
false;
    } 
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 13.12.2011, 17:20  
Benutzer
 
Registriert seit: 13.12.2011
Beiträge: 47
PHP-Kenntnisse:
Anfänger
dula89 befindet sich auf einem aufstrebenden Ast
Standard

danke für die schnelle Antwort.

Leider hat sich nichts getan, der Fehler bleibt bestehen.
dula89 ist offline   Mit Zitat antworten
Alt 13.12.2011, 17:27  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Du hast den Fehler ja auch 2 mal im Script.

Hast du alle Vorkommen behoben?

Wenn ja ist die übergebene Id falsch.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 13.12.2011, 17:32  
Benutzer
 
Registriert seit: 13.12.2011
Beiträge: 47
PHP-Kenntnisse:
Anfänger
dula89 befindet sich auf einem aufstrebenden Ast
Standard

ah ok...jetzt gehts danke dir!

ich hatte es nur an einer stelle behoben...
dula89 ist offline   Mit Zitat antworten
Alt 13.12.2011, 20:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Bitte auch zukünftig beachten: http://www.php.de/php-einsteiger/464...verwenden.html (Bitte aussagekräftige Threadtitel verwenden)
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Griechisch in xt-Commerce Shop | @setlocale ralf_randale PHP Tipps 2010 0 14.11.2010 17:21
[Erledigt] Perobleme mit meinem Shop bierfest PHP Tipps 2010 2 21.10.2010 13:45
Programmierer für xt:c shop inkl. JTL Wawi gesucht pc-woelfl Gewerblich 0 12.03.2010 17:41
online shop system mittels Php und datenbank marc669 PHP Tipps 2009 6 02.07.2009 13:49
e commerze shop instalation-umgestaltung-hilfe in admin- bresko Beitragsarchiv 5 29.04.2009 14:26
Eure Meinung zu Modulen für einen Online Shop litterauspirna Off-Topic Diskussionen 1 16.04.2009 14:10
[Erledigt] Suche Programmierer für Web Shop Projekt Wave-Dreams Beitragsarchiv 0 30.01.2009 12:45
Shop für Browsergame dtrain07 PHP Tipps 2009 15 10.01.2009 08:40
Shop erstellen mit Admin bereich martl666 PHP Tipps 2008 16 10.09.2008 17:11
Shop Zergling-new Off-Topic Diskussionen 4 17.04.2008 17:19
Shop Service - wie umsetzen? greg PHP Tipps 2006 1 07.05.2006 14:55
Shop bzw. Warenkorb - Framework El Barto Beitragsarchiv 7 27.01.2005 19:24
pHp Shop in Homepage einbinden !!! ABER WIE ??? PHP Tipps 2004 1 15.08.2004 19:23
shop im frame problem (ie vs mozilla??) PHP-Fortgeschrittene 1 15.06.2004 02:20


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum