Autor Thema: Artikel von bestimmter Seite per ssp::readSQLData auslesen  (Gelesen 10959 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Hallo,

Habe ein Problem mit der DB-Abfrage:
mit
my $count = ssp::readSQLData("SELECT PGID, DESCR, PRICE, IMG FROM ITEM","DESCR","PRICE","IMG","PGID");wird die Seitennummer korrekt ausgelesen und mit
$test = ssp::get_var_db("PGID",$i);auch angezeigt

Wenn ich aber nur Artikel, die auf dieser Seite liegen, ausgeben möchte
my $count = ssp::readSQLData("SELECT PGID, DESCR, PRICE, IMG FROM ITEM WHERE PGID='1200008060'","PGID","DESCR","PRICE","IMG");kommt die Fehlermeldung
Zitat
DBD::ODBC::st execute failed: [Microsoft][ODBC Microsoft Access Driver] Datentypen in Kriterienausdruck unverträglich. (SQL-22018)(DBD: st_execute/SQLExecute err=-1) at Ibodata.pm line 1627.

 z.B. WHERE ITEMID='4711' funktioniert jedoch.

Wo habe ich da den Fehler gemacht?

Nachtrag:
Der komplette Code (falls DA irgendwo der Fehler steckt  ???)
my $count = ssp::readSQLData("SELECT PGID, DESCR, PRICE, IMG FROM ITEM WHERE PGID='1200008060'","PGID","DESCR","PRICE","IMG");
       if ($count >= 0) {
            my $i=0;
            while ($count > $i) {
                   $test = ssp::get_var_db("PGID",$i);
                   $descr = ssp::get_var_db("DESCR",$i);
                   $preis = ssp::get_var_db("PRICE",$i);
                   $img = ssp::get_var_db("IMG",$i);
                   $bild = qq { <IMG BORDER=0 SRC=$img> };
                   main::mprint("$test / $bild / $descr / $preis<br>\n");
                   ++$i;
               }
       } else {
           my $errtext = ssp::get_last_sqlerr();
           main::mprint("Fehler beim DB Zugriff: $errtext<br>\n");
               }
}

Zusatzfrage: in welcher Tabelle (wenn überhaupt) finde ich die eingetragenen Crossartikel?

Linkback: https://www.shoppilot.net/pf/index.php?topic=866.0
« Letzte Änderung: Juni 03, 2007, 09:51:29 von dobra »
mfG
dobra

Offline jg

  • Hero Member
  • *****
  • Beiträge: 526
  • Lob: 3
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #1 am: Juni 03, 2007, 12:19:07 »
> PGID='1200008060'
Vielleicht mal so testen: PGID=1200008060
PGID ist als int(11), hinterlegt ITEMID als char(40).

> Crossartikel
Bei uns ist die Cross(haupt)nummer in ERG4 hinterlegt, zB. cr01128.
Alle Artikel mit 'cr01128' in ERG4 werden dann als zusammenhängende
Crossartikel angezeigt.

jg

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #2 am: Juni 03, 2007, 12:35:31 »
@jg

DANKE -  PGID=1200008060 ohne ' funktioniert

zu Crossartikeln: mein Problem ist, daß ich diese in einem Formular anzeigen will und ich das (lt. ahe wenn ich ihn richtig verstanden habe) nur mit eine direkten DB-Abfrage machen kann.

Detailseite:  Mengeneingabe -> 1. Formular: abhängig von der bestellten Menge unterschiedliche Ausgabe der weitern Artikel -> und dann noch ein Fomular (mit Anzeige der Crossartikel des bestellen 2. Hauptartikels, eine Infoseite auf der die gesammelten Daten gemeinsam in den WK gelegt werden.

Stehe momentan "auf der Leitung", wie ich das machen soll aber ich versuche es weiter.
Jetzt funktioniert schon mal die Anzeige der Hauptartikel  :D

Offline jg

  • Hero Member
  • *****
  • Beiträge: 526
  • Lob: 3
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #3 am: Juni 03, 2007, 12:50:28 »
> Detailseite:  Mengeneingabe -> 1. Formular: abhängig von der bestellten Menge unterschiedliche
> Ausgabe der weitern Artikel -> und dann noch ein Fomular (mit Anzeige der Crossartikel des
> bestellen 2. Hauptartikels, eine Infoseite auf der die gesammelten Daten gemeinsam in den WK gelegt werden.

Uups, das scheint höhere Mathematik zu sein, da komme ich jetzt nicht mehr mit... ;)
Ich würde die Crossfunktion auf jeden Fall nicht zu kompliziert machen.
Da schleichen sich dann manchmal schnell noch weitere Probleme ein.

jg

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #4 am: Juni 04, 2007, 13:01:56 »
Hallo,

mal ein kurzer Denkanstoss zur Abfrage:

Angenommen im ersten Schritt wählt der Kunde den Artikel xyz aus.
Für diesen Artikel sind die Crossartikel "item1,item2,item3" im Feld Ergänzung 1 eingetragen.
Die Crossartikel sind hier dann beispielsweise die verfügbaren Flaschen für den eigentlichen Artikel.

Zur Abfrage der Flaschen können Sie dann die entsprechende SQL-Abfrage erzeugen:
    ...
    my $itemid = ssp::get_var_form('itemid'); ## Das kommt per hidden-Input an
    my $cross = ssp::get_var_form('cross'); ## Das auch, wird im vorigen Formular auf __ergaenz1__ gesetzt
    if (length($cross)) {
        my @itemids = split(",", $cross);
        my @where;
        foreach my $id (@itemids) {
            push(@where, "ITEMID='$id'");
        }
        my $read = ssp::readSQLData("SELECT PGID,DESCR FROM ITEM WHERE " . join(" OR ", @where), "PGID", "DESCR");
        ## Auslesen und Ausgabe der einzelnen Artikel
    }
    ...
MfG ahe

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #5 am: Juni 04, 2007, 13:11:41 »
@ahe


        my @itemids = split(",", $cross);
        my @where;
        foreach my $id (@itemids) {
            push(@where, "ITEMID='$id'");

das war's wo ich gestern angestanden bin
"irgendwie mit split" und weiter bin ich nicht gekommen...........

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #6 am: Juni 04, 2007, 21:15:22 »
Bitte nochmal um Hilfe - ich bekomme es nicht hin  :'(

       ...................
         my $read = ssp::readSQLData("SELECT PGID,DESCR,PRICE,IMG FROM ITEM WHERE " . join(" OR ", @where), "PGID", "DESCR","PRICE","IMG");
        ## Auslesen und Ausgabe der einzelnen Artikel
$descr = ssp::get_var_db("DESCR");
$preis = ssp::get_var_db("PRICE");
$img = ssp::get_var_db("IMG");
$bild = qq | <img src="$img"> |;
$out = qq |
<table>
<tr>
<td> $bild </td>
<td> $preis </td>
</tr>
<tr>
<td colspan="2"> <input type="radio" name="Flasche" value="$preis" checked> $descr</td>
</tr>
</table>
|;
main::mprint("$out");
}
}

Es wird nur der erste Crossartikel angezeigt

Habe es auch mit
    ....................
if ($read >= 0) {
my $i=0;
while ($read > $i) {
       ....................
und $descr = ssp::get_var_db("DESCR",$i);
main::mprint("$out");
++$i; versucht,
aber damit ist mir das Programm jedesmal abgestürzt  ???

wo habe ich den Fehler gemacht, daß nicht alle Crossartikel angezeigt werden?
was muß ich bei
<input ..... name="xxx" value="xxx" ........
korrekt eintragen?
« Letzte Änderung: Juni 04, 2007, 21:56:13 von dobra »

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #7 am: Juni 04, 2007, 23:42:43 »
Also die Schleife sollte so aussehen
...
my $read = ssp::readSQLData("...", "DESCR", ...);
for (my $i = 0; $i < $read; $i++) {
my $descr = ssp::get_var_db("DESCR", $i);
...
}
...

und das input sollte so aussehen

<input type="hidden" name="cross" value="__ergaenz1__">


Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #8 am: Juni 05, 2007, 06:18:56 »
Danke - so funktioniert es  ;D

Letzter kleiner "Schönheitsfehler":
Ich möchte das "checked" verwenden - aber gibt es eine Möglichkeit, daß nicht der letzte sondern der erste Crossartikel standardmäßig ausgewählt ist?

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #9 am: Juni 05, 2007, 08:44:40 »
Setzen Sie einfach bei dem zu selektierenden Wert <input type="radio" name="xxx" value="yyy" checked>.
Bei allen anderen Feldern namens xxx lassen Sie das checked weg.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #10 am: Juni 05, 2007, 08:50:42 »
??  bei "normalem" HTML-Seitenaufbau ist mir das schon klar, aber in diesem Fall habe ich doch nur einen <input type...  Eintrag ($out = qq |...)
« Letzte Änderung: Juni 05, 2007, 09:05:06 von dobra »

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #11 am: Juni 05, 2007, 10:50:46 »
Hmm, ich scheine da an der falschen Stelle zu sein.
Was möchten Sie denn ausgeben?
Ich hatte gedacht, dass es um die Artikelauswahl getht.

Dafür würden Sie bei beispielsweise 3 Flaschen folgendes ausgeben:

<input type="radio" name="item_flasche" value="itemid1"> Dies ist Flasche 1<br>
<input type="radio" name="item_flasche" value="itemid2"> Dies ist Flasche 2<br>
<input type="radio" name="item_flasche" value="itemid3"> Dies ist Flasche 3

Dann kann der Kunde eine der drei Flaschen auswählen und im nächsten Formular können Sie per ssp::get_var_form("item_flasche") die ausgewählte Flasche festellen und die zugehörigen Korken anzeigen.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Artikel von bestimmter Seite per ssp::readSQLData auslesen
« Antwort #12 am: Juni 05, 2007, 11:36:46 »
@ ahe

Antwort per mail
_______________________

-->  DANKE für den geduldigen "Nachhilfeuntericht"
« Letzte Änderung: Juni 05, 2007, 12:21:59 von dobra »


xx
Mit SSP eine bestimmte Artikel oder Infoseite auslesen?

Begonnen von EK

18 Antworten
14377 Aufrufe
Letzter Beitrag September 26, 2003, 13:55:45
von jg
xx
Textfeld auf Artikel-Detail-Seite

Begonnen von Ingolf

9 Antworten
11776 Aufrufe
Letzter Beitrag Februar 26, 2012, 16:21:30
von Ingolf
xx
mehrere Artikel mit Varianten aus einer Seite ausgeben

Begonnen von dobra

0 Antworten
6362 Aufrufe
Letzter Beitrag November 25, 2014, 08:45:31
von dobra
xx
readSQLData - ssp::get_var_db

Begonnen von dobra

3 Antworten
6052 Aufrufe
Letzter Beitrag Oktober 05, 2007, 13:08:21
von dobra