Ich zerlege gerade den Shop ein wenig um ein paar Features im Warenkorb/Bestellwesen zu ndern. Zunchst hat ja alles super geklappt. Ich kann mit dem Shop nun zwischen drei Lndern unterscheiden und einen Versandkostenfreien (ab 30 ) Bestellvorgang durchfhren lassen. Mein Problem liegt nun ganz woanders. Ich brucht nochmal eine Unterscheidung in der Art des Artikels der gekauft wird. Wir haben Artikel mit 2 und 5 Porto. ber 30 Euro ist das Porto frei. Das funktioniert wie gesagt. Bei der Unterscheidung zwischen 2 und 5 habe ich mir was relativ simples einfallen lassen. Die Datei pay.php soll schauen, ob sich im Tabellenfeld "Keywords" unter "Item" ein bestimmtes von mir festgelegtes Wort befindet. Wenn das Wort dort zu finden ist, kostet der Artikel 5 Euro und ich kann ber if und else Befehle weiter navigieren. Nun meine Frage:
Wie sage ich der pay.php, schaue in der Datenbank unter Item.Keywords nach ob dieses Wort (z.b. portotest) in der Spalte steht oder nicht? Ich habe alle mglichen Platzhalter dafr probiert aber es funktioniert nicht! Bitte um Hilfe.
Danke. Ansonsten weiter so mit dem Shop.
Grsse Sascha
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
<kopfschttel>
was tippe ich hier ...
</kopfschttel>
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2004-01-22
Erstmal danke fr die schnelle Antwort, aber leider funktioniert das so nicht. Vielleicht habe ich mich auch ein bischen unklar ausgedrckt. Im Grunde brauche ich nur den Platzhalter, das die Datei pay.php mal kurz nachschaut, ob sich das besagte Wort in der Zeile "keywords" befindet. Den "if-Befehl" mache ich dann selber. Wenn das Wort "portotest" sich in der Tabellenzeile befindet, soll das Script nicht wie Du geschrieben hast zwischen 2 und 5 unterscheiden, ich fhre das Script dann ber andere Formularfelder. Ich nutze nicht die Eingabefelder ber den Admin. Ich mache mir eigene Form Felder. Im Grunde habe ich es ganz einfach gemacht. Ich habe mir 4 Pay.php Dateien gemacht. pay.php, pay1.php usw. Wenn der Kunde nun bezahlen mchte bekommt er von mir drei Lnder Flaggen zugewiesen. EU, Germany und andere Lnder. Dementsprechend wie der Kunde klickt wird er auf eine meiner pay.php verwiesen. Und darin lege ich das Porto und den Versand fest! Ich mache also Form-Felder aus normalen HTML Befehlen. In den EU und anderen Lndern unterscheide ich nicht zwischen 2 und 5- Nur bei Sendungen innerhalb der BRD. Und in meiner pay.php fr Deutschland arbeite ichh bei dem Gesamtpreis mit if und else. Wegen Versandkostenfrei. Und dann kommt darin die Stelle wo ich einfach nur wissen mchte, wie ich demScript sage:
Schaue in die Datenbank unter Item in dem Feld Keywords ob dort "portotest" steht. Wenn ja dann gehe dorthin, wenn nicht gehe woanders hin. Und ich mchte nur wissen, wie ich das Tabellenfeld "Keywords" auslesen kann. Andere Scripte weisen einfach auf das Tabellenfeld hin und gut ist. Wie die Platzhalter fr die Texte. Beim Gesamtpreis war es doch auch ganz einfach. Vielleicht kommen wir so weiter. Ich hatte ja ein Tabellenfeld eingefgt unter Items, aber da kam der ganze Shop durcheinander. *seufz*
Oder wir nehmen ein anderes Tabellenfeld zum berprfen eines von mir festgelegten Wertes. Muss doch machbar sein. Bitte helft mir. Ich komme sonst nicht weiter!
Ich habe aber noch ein kleines anderes Problem. Ich habe die Nav.php auch komplett zerlegt und arbeite nun mit einer grafischen Oberflche, wo ich die Links selber zuweise. Habe auch das Login bernommen. Wenn ein User nicht eingeloggt ist, habe ich einen grafischen Button der Login lautet. Wenn der User eingeloggt ist, ndert sich die Grafik in Dein Account. Im ursprnglichen Shop stand dann in Textform der Name des Kunden dort. Das funktioniert bei mir soweit. Nur wenn der Kunde ausgeloggt ist, ndert sich die Grafik nicht mehr zurck!
Ist doch richtig der Befehl zur berprfung:
if ($user_ID == 2) {bla.....usw
Oder fehlt mir was? Und wenn man den Shop komplett zuklickt und dann wieder ansurft ist der Warenkorb leer. Ich glaube in der Original Fassung passiert das auch nicht oder? Dann habe ich bestimmt ein paar Befehle aus der Nav.php zuviel gekillt. Vielleicht kann man mir da auch ein bischen Untersttzung geben.
So long....
Sascha
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hm ... also erstmal heit das nicht 'Tabellenfeld', sondern 'Spalte'; aber ich wei ja was Du meinst.
Warum Du da eigene pay.php's baust erschliet sich mir nicht wirklich ... Was ndert sich in den Dateien effektiv? Nur die Sache mit den Versandkosten oder? Also wrde ich doch nur die auslagern. Ist aber auch Deine Sache und nicht entscheidend ..
Das der ganze Shop durcheinanderkommt, wenn Du in Tabelle item eine Spalte hinzufgst, hat folgenden Grund:
In main.php, detail.php und cart.php werden SQL-Queris der Art 'SELECT item.*, iteminfo.* ...' verwendet. Das ergibt ein Ergebnis-Array, dessen Elemente z.B. $item_row[15] der Artikelname ist. Bei einer weiteren Spalte erhlt $item_row[15] aber den Wert aus Spalte iteminfo.langID und der Name steht eins weiter nmlich in $item_row[16]. Den Schlssel mut Du dann in Deiner show_item* und in cart.php anpassen.
Noch eine grundstzliche Frage: Was passiert, wenn jemand einen Artikel mit Porto=2 und einen Artikel mit Porto=5 gleichzeitig bestellt? Gibt's dann Porto=7 oder Porto=2 oder 5?
Macht der ganze Aufwand fr 3 Euro wirklich Sinn? Wre ein Pauschalporto von 4Euro nicht einfacher? Bedenke, da Deine Arbeitszeit letztlich auch was kostet ... Aber das ist nicht mein Problem ;-)
Das der Warenkorb verschwindet, wenn das Browserfenster geschlossen wird ist normal; allerdings auch Browser abhngig. Manchmal reicht ein weiteres Browserfenster und die Session bleibt erhalten, manchmal nicht, Cookies ein/aus usw. Eigentlich soll er weg sein, da ist richtig. Ich hasse es, da ich z.B. bei Amazon gleich eingeloggt bin, wenn ich die Seite ffne. Ist natrlich praktitsch, weil ich auf Kosten des eingeloggten einkaufen kann ...
phPay hat in dem Sinne keinen Logout-Knopf auer 'Shop verlassen', verliert aber normalerweise die Session beim Verlassen der Seite usw., weil es eben keine Cookies verwendet.
Mit Deinem eigentlichen Portoproblem bringt uns das aber alles nicht weiter ...
Die Auswertung der Spalte item.keyword kannst Du nicht anders machen als mit if .. else. Oder suchst Du dafr einen SQL-Query?
SELECT keywords FROM item WHERE ID='$itemID' AND keywords LIKE '%protest%'
Auch das Ergebnis dieses Queries mut Du mit PHP und if ...else verarbeiten, weil auch die Reaktion darauf mit PHP erfolgt.
Vielleicht habe ich die Frage aber auch immernoch nicht verstanden ...
Gru,
Andreas.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2004-01-22
Das mit dem Porto ist relativ einfach.
Wir haben kleine Artikel (Maxibrief 2 Euro) und grere Artikel (Pckchen 5 Euro). Wenn nun jemand ein 2 Euro und ein 5 Euro (Portokosten) Artikel kauft, zahlt dieser 5 Euro, solange er unter 30 Euro komplett bleibt. Ab dann ist es Versandkostenfrei. Und wenn nun ein Artikel als Pckchen dabei ist, mchte ich es so machen, das man im Formular Feld fr Porto NICHT 2 Euro als Versand auswhlen kann! Mehr will ich eigentlich nicht. Und da meine PHP Kentnisse aus Error und Try bestehen, fand ich die Lsung mit if und else mit Hilfe der Spalte ;o) "keywords" einfach und funktionabel. :o)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ah ja ... Ich pernlich halte Dein Konzept fr etwas komisch; aber Du mut damit leben nicht ich ;-)
Mein Vorschlag wre gewesen:
a) Versandkosten fr's Ausland mit Aufpreis
b) Versandkosten nach Artikelgewicht
Das mu nicht der Weisheit letzter Schlu sein, mir persnlich erscheint das aber flexibler und eleganter.
Fr Deinen speziellen Fall wird das so okay sein. Meine berlegung wre nmlich: Ein Pkchen wird von der DPAG auch nur bis 2kg angenommen, danach ist es ein Paket und kostet wieder anders.
Wie stellst Du Dir das vor, wenn jemand 10 Artikel zu 2Euro Porto kauft? Zehn Briefe und 18Euro minus einfahren? Mit Deinem bisherigen Konzept funktioniert das nicht.
Vielleicht passiert das in Deinem Shop auch nicht, kann sein ...
Gru,
Andreas.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2004-01-22
Meine Zeile sieht nun so aus:
$porto = db_query("SELECT keywords FROM item WHERE ID='$itemID'");
if($porto == portotest)
Dann geht es weiter mit if und else. Bekomme zwar keinen Fehler, aber das Script unterscheidet leider nicht, wenn ich einen Artikel in den Warenkorb klicke, welcher das besagte Wort "Portotest" beinhaltet. *seufz*
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2004-01-22
Wenn jemand 10 Artikel zu je 2 Euro Porto einkauft kommt er sicherlich ber die 30 Euro Grenze. ;o)
Dann ist es eh fr den Kunden kostenlos. Auer er mchte es versichert haben. Aber das habe ich bereits eingebaut. :o)
Muss aber mal loswerden, das man hier echt Hilfe bekommt. Es kmemrt sich jemand um einen. Ist man nicht wirklich von anderen Script Schreibern gewhnt. :o)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ich grsse mal wieder alle in die Runde.
Ich zerlege gerade den Shop ein wenig um ein paar Features im Warenkorb/Bestellwesen zu ndern. Zunchst hat ja alles super geklappt. Ich kann mit dem Shop nun zwischen drei Lndern unterscheiden und einen Versandkostenfreien (ab 30 ) Bestellvorgang durchfhren lassen. Mein Problem liegt nun ganz woanders. Ich brucht nochmal eine Unterscheidung in der Art des Artikels der gekauft wird. Wir haben Artikel mit 2 und 5 Porto. ber 30 Euro ist das Porto frei. Das funktioniert wie gesagt. Bei der Unterscheidung zwischen 2 und 5 habe ich mir was relativ simples einfallen lassen. Die Datei pay.php soll schauen, ob sich im Tabellenfeld "Keywords" unter "Item" ein bestimmtes von mir festgelegtes Wort befindet. Wenn das Wort dort zu finden ist, kostet der Artikel 5 Euro und ich kann ber if und else Befehle weiter navigieren. Nun meine Frage:
Wie sage ich der pay.php, schaue in der Datenbank unter Item.Keywords nach ob dieses Wort (z.b. portotest) in der Spalte steht oder nicht? Ich habe alle mglichen Platzhalter dafr probiert aber es funktioniert nicht! Bitte um Hilfe.
Danke. Ansonsten weiter so mit dem Shop.
Grsse Sascha
Vielleicht:
$porto_res = db_query("SELECT keywords FROM item WHERE ID='$itemID'");
$porto_row = db_fetch_row($porto_row);
if (ereg('portotest', $portorow[0]))
$porto = 5;
else $porto = 2;
Gru,
Andreas.
natrlich mu es heien:
db_fetch_row($porto_res);
und
$porto_row[0]))
<kopfschttel>
was tippe ich hier ...
</kopfschttel>
Erstmal danke fr die schnelle Antwort, aber leider funktioniert das so nicht. Vielleicht habe ich mich auch ein bischen unklar ausgedrckt. Im Grunde brauche ich nur den Platzhalter, das die Datei pay.php mal kurz nachschaut, ob sich das besagte Wort in der Zeile "keywords" befindet. Den "if-Befehl" mache ich dann selber. Wenn das Wort "portotest" sich in der Tabellenzeile befindet, soll das Script nicht wie Du geschrieben hast zwischen 2 und 5 unterscheiden, ich fhre das Script dann ber andere Formularfelder. Ich nutze nicht die Eingabefelder ber den Admin. Ich mache mir eigene Form Felder. Im Grunde habe ich es ganz einfach gemacht. Ich habe mir 4 Pay.php Dateien gemacht. pay.php, pay1.php usw. Wenn der Kunde nun bezahlen mchte bekommt er von mir drei Lnder Flaggen zugewiesen. EU, Germany und andere Lnder. Dementsprechend wie der Kunde klickt wird er auf eine meiner pay.php verwiesen. Und darin lege ich das Porto und den Versand fest! Ich mache also Form-Felder aus normalen HTML Befehlen. In den EU und anderen Lndern unterscheide ich nicht zwischen 2 und 5- Nur bei Sendungen innerhalb der BRD. Und in meiner pay.php fr Deutschland arbeite ichh bei dem Gesamtpreis mit if und else. Wegen Versandkostenfrei. Und dann kommt darin die Stelle wo ich einfach nur wissen mchte, wie ich demScript sage:
Schaue in die Datenbank unter Item in dem Feld Keywords ob dort "portotest" steht. Wenn ja dann gehe dorthin, wenn nicht gehe woanders hin. Und ich mchte nur wissen, wie ich das Tabellenfeld "Keywords" auslesen kann. Andere Scripte weisen einfach auf das Tabellenfeld hin und gut ist. Wie die Platzhalter fr die Texte. Beim Gesamtpreis war es doch auch ganz einfach. Vielleicht kommen wir so weiter. Ich hatte ja ein Tabellenfeld eingefgt unter Items, aber da kam der ganze Shop durcheinander. *seufz*
Oder wir nehmen ein anderes Tabellenfeld zum berprfen eines von mir festgelegten Wertes. Muss doch machbar sein. Bitte helft mir. Ich komme sonst nicht weiter!
Ich habe aber noch ein kleines anderes Problem. Ich habe die Nav.php auch komplett zerlegt und arbeite nun mit einer grafischen Oberflche, wo ich die Links selber zuweise. Habe auch das Login bernommen. Wenn ein User nicht eingeloggt ist, habe ich einen grafischen Button der Login lautet. Wenn der User eingeloggt ist, ndert sich die Grafik in Dein Account. Im ursprnglichen Shop stand dann in Textform der Name des Kunden dort. Das funktioniert bei mir soweit. Nur wenn der Kunde ausgeloggt ist, ndert sich die Grafik nicht mehr zurck!
Ist doch richtig der Befehl zur berprfung:
if ($user_ID == 2) {bla.....usw
Oder fehlt mir was? Und wenn man den Shop komplett zuklickt und dann wieder ansurft ist der Warenkorb leer. Ich glaube in der Original Fassung passiert das auch nicht oder? Dann habe ich bestimmt ein paar Befehle aus der Nav.php zuviel gekillt. Vielleicht kann man mir da auch ein bischen Untersttzung geben.
So long....
Sascha
Hm ... also erstmal heit das nicht 'Tabellenfeld', sondern 'Spalte'; aber ich wei ja was Du meinst.
Warum Du da eigene pay.php's baust erschliet sich mir nicht wirklich ... Was ndert sich in den Dateien effektiv? Nur die Sache mit den Versandkosten oder? Also wrde ich doch nur die auslagern. Ist aber auch Deine Sache und nicht entscheidend ..
Das der ganze Shop durcheinanderkommt, wenn Du in Tabelle item eine Spalte hinzufgst, hat folgenden Grund:
In main.php, detail.php und cart.php werden SQL-Queris der Art 'SELECT item.*, iteminfo.* ...' verwendet. Das ergibt ein Ergebnis-Array, dessen Elemente z.B. $item_row[15] der Artikelname ist. Bei einer weiteren Spalte erhlt $item_row[15] aber den Wert aus Spalte iteminfo.langID und der Name steht eins weiter nmlich in $item_row[16]. Den Schlssel mut Du dann in Deiner show_item* und in cart.php anpassen.
Noch eine grundstzliche Frage: Was passiert, wenn jemand einen Artikel mit Porto=2 und einen Artikel mit Porto=5 gleichzeitig bestellt? Gibt's dann Porto=7 oder Porto=2 oder 5?
Macht der ganze Aufwand fr 3 Euro wirklich Sinn? Wre ein Pauschalporto von 4Euro nicht einfacher? Bedenke, da Deine Arbeitszeit letztlich auch was kostet ... Aber das ist nicht mein Problem ;-)
Das der Warenkorb verschwindet, wenn das Browserfenster geschlossen wird ist normal; allerdings auch Browser abhngig. Manchmal reicht ein weiteres Browserfenster und die Session bleibt erhalten, manchmal nicht, Cookies ein/aus usw. Eigentlich soll er weg sein, da ist richtig. Ich hasse es, da ich z.B. bei Amazon gleich eingeloggt bin, wenn ich die Seite ffne. Ist natrlich praktitsch, weil ich auf Kosten des eingeloggten einkaufen kann ...
phPay hat in dem Sinne keinen Logout-Knopf auer 'Shop verlassen', verliert aber normalerweise die Session beim Verlassen der Seite usw., weil es eben keine Cookies verwendet.
Mit Deinem eigentlichen Portoproblem bringt uns das aber alles nicht weiter ...
Die Auswertung der Spalte item.keyword kannst Du nicht anders machen als mit if .. else. Oder suchst Du dafr einen SQL-Query?
SELECT keywords FROM item WHERE ID='$itemID' AND keywords LIKE '%protest%'
Auch das Ergebnis dieses Queries mut Du mit PHP und if ...else verarbeiten, weil auch die Reaktion darauf mit PHP erfolgt.
Vielleicht habe ich die Frage aber auch immernoch nicht verstanden ...
Gru,
Andreas.
Das mit dem Porto ist relativ einfach.
Wir haben kleine Artikel (Maxibrief 2 Euro) und grere Artikel (Pckchen 5 Euro). Wenn nun jemand ein 2 Euro und ein 5 Euro (Portokosten) Artikel kauft, zahlt dieser 5 Euro, solange er unter 30 Euro komplett bleibt. Ab dann ist es Versandkostenfrei. Und wenn nun ein Artikel als Pckchen dabei ist, mchte ich es so machen, das man im Formular Feld fr Porto NICHT 2 Euro als Versand auswhlen kann! Mehr will ich eigentlich nicht. Und da meine PHP Kentnisse aus Error und Try bestehen, fand ich die Lsung mit if und else mit Hilfe der Spalte ;o) "keywords" einfach und funktionabel. :o)
Ah ja ... Ich pernlich halte Dein Konzept fr etwas komisch; aber Du mut damit leben nicht ich ;-)
Mein Vorschlag wre gewesen:
a) Versandkosten fr's Ausland mit Aufpreis
b) Versandkosten nach Artikelgewicht
Das mu nicht der Weisheit letzter Schlu sein, mir persnlich erscheint das aber flexibler und eleganter.
Fr Deinen speziellen Fall wird das so okay sein. Meine berlegung wre nmlich: Ein Pkchen wird von der DPAG auch nur bis 2kg angenommen, danach ist es ein Paket und kostet wieder anders.
Wie stellst Du Dir das vor, wenn jemand 10 Artikel zu 2Euro Porto kauft? Zehn Briefe und 18Euro minus einfahren? Mit Deinem bisherigen Konzept funktioniert das nicht.
Vielleicht passiert das in Deinem Shop auch nicht, kann sein ...
Gru,
Andreas.
Meine Zeile sieht nun so aus:
$porto = db_query("SELECT keywords FROM item WHERE ID='$itemID'");
if($porto == portotest)
Dann geht es weiter mit if und else. Bekomme zwar keinen Fehler, aber das Script unterscheidet leider nicht, wenn ich einen Artikel in den Warenkorb klicke, welcher das besagte Wort "Portotest" beinhaltet. *seufz*
Das wird so nix ... siehe http://de3.php.net/manual/de/function.mysql-query.php
Hast Du Dir Deine Werte von $porto mal mit var_dump($porto); angeschaut?
Ein db_fetch_row($porto) mut Du schon noch dazwischen packen wie in http://sourceforge.net/forum/message.php?msg_id=2387192
beschrieben.
Wenn jemand 10 Artikel zu je 2 Euro Porto einkauft kommt er sicherlich ber die 30 Euro Grenze. ;o)
Dann ist es eh fr den Kunden kostenlos. Auer er mchte es versichert haben. Aber das habe ich bereits eingebaut. :o)
Muss aber mal loswerden, das man hier echt Hilfe bekommt. Es kmemrt sich jemand um einen. Ist man nicht wirklich von anderen Script Schreibern gewhnt. :o)