Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:

Autor Thema: Category array oder eher string mit Get übergeben für google shopping modul AGI  (Gelesen 315 mal)

Offline manne35

  • Fördermitglied
  • *****
  • Beiträge: 421
  • Geschlecht: Männlich
    • Teile Beitrag
    • Edelsteine und Heilsteine
Hallo zusammen,

Mein Ziel:  kategorie IDs in der url übergeben a la

shopdiemaus/.../.../export/google_xml.php?kat=10,13,22,155

und diese $kat dann im google shopping modul von AGI unten zum filtern nutzen,
um nur diese kategorien zu exportieren.
Ist das als string besser oder als INT  array?
(wobei ich nicht weiß wie s als array geht.)

Code: PHP  [Auswählen]
$export_kat = preg_match('/^\d[0-9,]+$/', $_GET['kat']) ? (string)$_GET['kat'] : '';
bei der Abfrage dann
Code: PHP  [Auswählen]
WHERE
    p.products_status=1 AND pc.categories_id IN($export_kat)

wie das als array mit Zahlen geht hab ich nicht ergockelt,
irgendwie gogle ich nach den falschen Begriffen...

Dank und gruss
manne

Linkback: https://www.modified-shop.org/forum/index.php?topic=40235.0

Offline GTB

  • modified Team
  • *****
  • Gravatar
  • Beiträge: 5.270
  • Geschlecht: Männlich
    • Teile Beitrag
Wenn du ein GET Array haben möchtest, dann so:

Code: PHP  [Auswählen]
shopdiemaus/.../.../export/google_xml.php?kat[]=10&kat[]=13&kat[]=22&kat[]=155

Gruss Gerhard

Offline hpzeller

  • Experte
  • *****
  • Beiträge: 2.964
  • Geschlecht: Männlich
    • Teile Beitrag
    • xos-shop.com | XOS-Shop ist ein umfangreiches "Open Source Webshop-System", welches per Webinterface administriert wird und an die Bedürfnisse des Betreibers angepasst werden kann.
[...]
Mein Ziel:  kategorie IDs in der url übergeben ...
wobei ich nicht weiß wie s als array geht.
[..]

Eine Lösung findest du hier -> https://mizine.de/html/array-ueber-get-url-parameter-uebergeben

Gruss
Hanspeter

Offline manne35

  • Fördermitglied
  • *****
  • Beiträge: 421
  • Geschlecht: Männlich
    • Teile Beitrag
    • Edelsteine und Heilsteine
Ah vielen dank GTB und hpzeller,

wieder was gelernt.

Das gibt ja heftige URLs mit den eckigen Klammern... aber auch viele Möglichkeiten...
Klasse

lg manne

Offline hpzeller

  • Experte
  • *****
  • Beiträge: 2.964
  • Geschlecht: Männlich
    • Teile Beitrag
    • xos-shop.com | XOS-Shop ist ein umfangreiches "Open Source Webshop-System", welches per Webinterface administriert wird und an die Bedürfnisse des Betreibers angepasst werden kann.
Hallo manne,

wenn du einen GET Array in der Art wie ihn GTB vorgeschlagen hat erzeugen willst musst du das nicht "zu Fuss erledigen", dazu gibt es in PHP die Funktion http_build_query() -> https://php.net/http_build_query

Gruss
Hanspeter

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 9.881
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
Damint die URLs nicht so heftig werden und es für die Bildung der URL einfacher ist, würde ich es so machen:
...?cat=3-4-5-7-9-8-12-56
und im Code mittels (sicherheitshalber inkl. Int-Cast)
Code: PHP  [Auswählen]
$all_cats = explode('-', $_GET['cat']);
$all_cats = array_map('intval', $all_cats);
$all_cats_in_str = implode(',', $all_cats);

in $all_cats_in_str den String speichern den du für IN() in der mySQL-Query benötigst.
Da ist dann auch kein (auf jeden Fall langsameres) preg_match() nötig.

Da ich annehme, daß nur du oder ein anderer Admin das benutzen wird, würde das so ausreichen.
Wenn du sicherheitshalber alle Values die nicht INT sind herausfiltern willst kannst du anstelle des array_map() das machen:
Code: PHP  [Auswählen]
foreach($all_cats as $key => $val) {
    if(!is_int($val))
        unset($all_cats[$key]);
}

Nur mit array_map() anstelle des Loops würde ein String nämlich zu 0;

Gruß,
noRiddle

Offline manne35

  • Fördermitglied
  • *****
  • Beiträge: 421
  • Geschlecht: Männlich
    • Teile Beitrag
    • Edelsteine und Heilsteine
Wahnsinn,
auch noRiddle dank nochmal für tolle Hilfe- :-)

Das werde ich versuchen, super, das schaut so klar aus
dass es für mich als Anfänger sogar sicher ausschaut.

... ich hätte php lernen sollen, nicht Latein, das ich dann doch nicht durchgezogen hatte... ;-)

... Aber bei meinen Kindern wunder ich mich da noch mehr drüber, dass da keinerlei Programmierlogik in der Schule vermittelt wird...


Teile per facebook Teile per linkedin Teile per twitter

 


             
anything