morrisantik Posted September 27, 2012 Report Share Posted September 27, 2012 Hallo zusmmen, ich möchte auf meiner Produktseite "product.html" auf die "shipping_id" zugreifen bzw. diese auslesen. Ich möchte erreichen, dass sobald ein Artikel die Versandkosten ID 2 hat, ein Banner erscheint, der die Versandart anzeigt. Ich habe folgendes Versucht, da die Variable $shipping_id ja in der product.html nicht aufrufbar ist. Ich bin in die class.product.php gegangen und habe folgendes eingetragen: public $shipping_id = 'shipping_id'; Jedoch kann ich immer noch nicht auf die Variable zugreifen. Fehlt dort noch etwas? Muss ich der shipping_id jetzt noch sagen, was diese überhaupt ist? Oder greift die class.product.php auf die Datenbank zu und erkennt die Variable anhand des Namens? Gruß Link to comment Share on other sites More sharing options...
oldbear Posted September 27, 2012 Report Share Posted September 27, 2012 ist doch klar, dass im Produkt noch keine Shipping-ID vorhanden ist, die wird doch erst beim Checkout zugewiesen ( ausser Du setzt eines der Hinsche-Plugins ein, wie Versandgruppen oder Versandkosten pro Artikel ) Grüsse Link to comment Share on other sites More sharing options...
morrisantik Posted September 27, 2012 Author Report Share Posted September 27, 2012 Genau, das mache ich. Ich habe von dieser Firma das Versandkosten Plugin. Und benutze die Versandmodule. shipping_id 2 ist bei mir das Modul "Versandkostenfrei" und dieses versuche ich abzufragen. Das wird ja beim Artikel zugewiesen. Hast du denn eine Idee? Link to comment Share on other sites More sharing options...
oldbear Posted September 28, 2012 Report Share Posted September 28, 2012 Die ID wird nicht im Produkt gespeichert, sondern steht in der Tabelle "xt_vt_products_to_shipping" und Du könntest per smarty-php {php} .... {/php} eine Abfrage darauf machen ( über den Shipping-code, nicht die ID ! ) Grüsse Link to comment Share on other sites More sharing options...
morrisantik Posted September 28, 2012 Author Report Share Posted September 28, 2012 Ok Danke für den Tipp. Werde das mal versuchen. Gruß Link to comment Share on other sites More sharing options...
morrisantik Posted September 30, 2012 Author Report Share Posted September 30, 2012 So, ich bin ein bisschen weiter gekommen. Ich habe es nun geschafft mittels php Abfrage, den Versand Code auszulesen und abzufragen. Allerdings nur mit einer von mir eiingegebenen products_id Das Ganze sieht soweit so aus: {php} $abfrage = "SELECT products_id, shipping_code FROM `xt_bui_products_to_shipping` WHERE products_id =2223"; $ausgabe = mysql_query($abfrage); while($row = mysql_fetch_object($ausgabe)) { echo $row->shipping_code; } [/PHP] Wie kann ich in dieser Abfrage aber bei [PHP]WHERE products_id =2223[/PHP] Die products_id durch die Variable $products_id ersetzen? Ersetzte ich es einfach durch die Variable wird nichts mehr ausgegeben. $products_id kann ich product.html angesprochen und auch per smarty ausgegeben werden. Edit: Habe hier noch einen Lösungsversuch, der leider auch noch nicht ganz funktioniert. Zuerst habe ich mir mit smarty eine Variable angelegt: [PHP] assign var=test value=$products_id} [/PHP] Ich kann sie mir jetzt folgendermaßen ausgeben lassen: [PHP] {php} echo $this->get_template_vars('test'); {/php} [/PHP] Das funktioniert wunderba. Was jedoch nicht geht ist 'test' in der Datenbankabfrage zu nutzen. [PHP] WHERE products_id = $this->get_template_vars('test')"; oder WHERE products_id = ('test')"; [/PHP] Link to comment Share on other sites More sharing options...
oldbear Posted September 30, 2012 Report Share Posted September 30, 2012 SQL-Syntax ist falsch: WHERE products_id = '".$this->get_template_vars('test')."'"; ansonsten kann man das auch über die ADODB machen und statt echo eine Variable ( 'shipping_code' ) ans Template übergeben: {assign var=id value=$products_id} {php} global $db; $id = $this->get_template_vars('id'); $abfrage = $db->Execute("SELECT shipping_code FROM ".TABLE_PRODUCTS_TO_SHIPPING." WHERE products_id = '".$id."'"); while( !$abfrage->EOF) { $shipping = $abfrage->fields['shipping_code']; $abfrage->MoveNext(); } $this->assign('shipping_code', $shipping); {/php} {if $shipping_code == '........' usw. usf. Grüsse Link to comment Share on other sites More sharing options...
morrisantik Posted September 30, 2012 Author Report Share Posted September 30, 2012 Super, ich danke dir für deine Tipps und Hilfe. Es hat jetzt wunderbar geklappt. Das gewünschte Ergebnis habe ich jetzt erzielen können. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.