Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Category array oder eher string mit Get übergeben für google shopping modul AGI

    manne35

    • Fördermitglied
    • Beiträge: 496
    • Geschlecht:
    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

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 5.490
    • Geschlecht:
    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

    hpzeller

    • Experte
    • Beiträge: 3.379
    • Geschlecht:
    [...]
    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

    manne35

    • Fördermitglied
    • Beiträge: 496
    • Geschlecht:
    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

    hpzeller

    • Experte
    • Beiträge: 3.379
    • Geschlecht:
    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

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 10.590
    • Geschlecht:
    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

    manne35

    • Fördermitglied
    • Beiträge: 496
    • Geschlecht:
    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...
    2 Antworten
    726 Aufrufe
    30. Januar 2017, 14:02:48 von web28
    10 Antworten
    3860 Aufrufe
    13. April 2012, 16:51:42 von Basel
    anything