Werbung / Banner buchen
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: Query liefert im Shop keine Ergebnisse, im phpMyAdmin schon

    Valli

    • Neu im Forum
    • Beiträge: 2
    Hallo. Ich habe in einem Shop die Artikelansicht umgebaut, so dass alle Artikel in der Datenbank anhand des Namens wie in einem Artikelbrowser durchgegangen werden können. Die Unterscheidung geschieht dabei durch den Namen, der Artikelmerkmale durch Abkürzungen darstellt.

    Nun habe ich ein Problem, wenn ich eine Eigenschaft nachträglich ändern (also eine Art "zurück"-function nutzen) will. Es wird ein Query generiert, dass schon beim erstmaligen Durchstöbern der Artikel benutzt wurde, allerdings gibt dieses nun keinerlei Ergebnisse mehr aus. Wenn ich die SQL-Abfrage jedoch per echo ausgeben lasse und in phpMyAdmin eingebe, funktioniert alles perfekt.
    (Anmerkung: die einfachen schrägen Anführungszeichen, die sonst die Feldnamen begrenzen, stehen in meinem Script, ich musste sie nur hier entfernen, da immer die Feldnamen gelöscht wurden.)

    Code: PHP  [Auswählen]
    $subsql = trim(mysql_real_escape_string(strip_tags($_POST['old'])));
    $subquery = "SUBSTRING(pd.products_name, ".(strlen("$subsql ")+1).")";
    $sql = "SELECT pd.products_id, pd.products_name AS products_name_parts, $subquery AS products_short, LTRIM(SUBSTRING($subquery, 1, INSTR(TRIM($subquery), ' '))) AS products_name FROM ".TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_PRODUCTS_TO_CATEGORIES." p2c, ".TABLE_CATEGORIES." c WHERE pd.products_id=p2c.products_id AND p2c.categories_id='$current_category_id' AND INSTR(pd.products_name, '$subsql')='1' GROUP BY pd.products_name";
     
    $_POST['old'] ist der Namensteil der Produkte, nach dem gesucht wrd, in diesem Fall:
    'WDF R84_K W WD'

    Der geparste sql-String:

    Code: SQL  [Auswählen]
    SELECT pd.products_id, pd.products_name AS products_name_parts, SUBSTRING(pd., 17) AS products_short, LTRIM(SUBSTRING(SUBSTRING(pd., 17), 1, INSTR(TRIM(SUBSTRING(pd., 17)), ' '))) AS products_name FROM products_description pd, products_to_categories p2c, categories c WHERE pd.products_id=p2c.products_id AND p2c.categories_id='11' AND INSTR(pd.products_name, 'WDF R84_K W WD ')='1' GROUP BY pd.products_name
     
    Die Namen der Produkte sind wiefolgt aufgebaut (nur als Anschauungsbeispiel):
    WDF R84_H N WD AL 05/07 _ __ HAN
    WDF R84_H N WD AL 05/09 _ __ HAN
    WDF R84_H N WD AL 05/11 _ __ HAN
    ....

    Ich hoffe, ihr könnt mir schnell helfen.



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

    Valli

    • Neu im Forum
    • Beiträge: 2
    Query liefert im Shop keine Ergebnisse, im phpMyAdmin schon
    Antwort #1 am: 28. März 2011, 06:21:00
    Problem hat sich inzwischen erledigt. da war ein Leerzeichen im Suchstring wo es nicht hingehörte... fragt sich nur, warum phpMyAdmin das nahm und ausführte, wenn's eigentlich nicht gehen dürfte.

    herausbekommen hab ich das über

    Code: PHP  [Auswählen]
    for($i=0; $i<strlen($subsql); $i++) {
        echo ord($subsql{$i})." ";
    }
    Das ist eine ASCII-Ausgabe eines String falls es mal wer braucht. Vielleicht ein nützlicher Schnipsel für den einen oder anderen...

    24 Antworten
    10206 Aufrufe
    03. Dezember 2010, 19:43:26 von XTC_Fan
    4 Antworten
    3559 Aufrufe
    29. November 2011, 01:05:09 von franky_n
    7 Antworten
    2547 Aufrufe
    23. Juni 2019, 20:38:17 von noRiddle (revilonetz)
    6 Antworten
    4003 Aufrufe
    19. Juli 2011, 12:03:48 von remedy