Autor Thema: STAFM2 - Anzahl begrenzen 1 oder 0 abfragen  (Gelesen 5225 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
STAFM2 - Anzahl begrenzen 1 oder 0 abfragen
« am: Februar 25, 2009, 23:39:15 »
Hallo,

ich habe ein kleines Scrips gebastelt, daß länger als x Tage abgelaufene Gutscheine automatisch löscht.

<!--spmacro:module(loesche)
sub abgelaufeneGS{
my $tage = 14;  ## Gutscheine die länger als $tage abgelaufen sind löschen
my $jetzt = time();
my $loeschen = $jetzt - ($tage*24*60*60); # 60 Tage * 24 h * 60 min * 60 sec
my $ITEM = ssp::db_get_prefix() . "ITEM ";
my $read = ssp::readSQLData("SELECT ITEMID, PGID FROM $ITEM WHERE (STAFP4 < '$loeschen' && ITEMID Like '_GS_%')", "ITEMID", "PGID");  ## Gutscheinpräfix anpassen wenn nicht _GS_
for (my $i = 0; $i < $read; $i++) {
        my $artikelnr = ssp::get_var_db("ITEMID", $i);
        my $pagenr = ssp::get_var_db("PGID", $i);
ssp::db_delete_item(0,"$artikelnr",$pagenr); ## liegen die Gutscheincodes nur auf einer Seite, kann die Seitennummer auch fix eingetragen werden
}
}
-->

das ist unter verschiedenen Bedingungen getestet und funktioniert tadellos.

ich komme aber nicht drauf, wie ich auch eingelöste GS löschen kann  :(

wird die Option "Anzahl begrenzen" aktiviert, steht das ja im STAFM2 Feld als 1:x:0  (x = sichtbar oder nicht und die 3. Zahl noch ohne Bedeutung)
in STAFP2 steht dann die noch verfügbare Anzahl bzw "0" wenn alle verfügbaren GS eingelöst wurden.
Ist die Option nicht aktiviert, ist das Feld STAFP2 leer.

und genau damit habe ich Probleme bei der Abfrage....

Wenn ich das Feld mit main::mprint ausgebe, bekomme ich "0" oder "nichts"
bei der Abfrage
WHERE STAFP2 =0 (hab's auch mit STAFP2 ='0' , STAFP2 =='0' und (LENGTH(STAFP2) >0 && STAFP2 =0) versucht)
wird aber kein Unterschied zwischen "nichts" und "0" gemacht und auch die GS gelöscht, die keine Begrenzung der Anzahl aktiviert haben (also das Feld leer ist).

Ich müsste also vermutlich WHERE (STAFM2 = Anzahl begrenzen aktiviert && STAFP2 =0) abfragen, aber WIE kann ich das STAFM2 Feld nach der ersten Zahl bei 1:x:0 abfragen?
=~ /1/ geht ja nicht, weil auch die 2. Zahl "1" sein kann...

Linkback: https://www.shoppilot.net/pf/index.php?topic=1208.0
mfG
dobra

Offline cru

  • Jr. Member
  • **
  • Beiträge: 69
  • Lob: 7
Re: STAFM2 - Anzahl begrenzen 1 oder 0 abfragen
« Antwort #1 am: Februar 26, 2009, 09:35:39 »
Hallo dobra,

also mit

WHERE STAFP2 NOT LIKE "%0%" AND STAFP2 = "";
bekommen Sie alle Artikel in deren STAFP2 Feld keine 0 steht, das Feld aber leer ist.

mit

WHERE STAFP2 LIKE "%0%" AND STAFP2 <> "";
bekommen Sie wiederrum Artikel in deren STAFP2 Feld eine 0 vorkommt und kein Leerstring!

mit

WHERE STAFP2 = "0" AND STAFP2 <> "";
bekommen Sie alle Artikel, bei denen nur die 0 im Feld steht und kein Leerstring!


Hilft das weiter?

mfg
cru


Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: STAFM2 - Anzahl begrenzen 1 oder 0 abfragen
« Antwort #2 am: Februar 26, 2009, 09:53:48 »
Hallo cru,

Danke - SO funktioniert die Abfrage   :D


xx
Imagebreite abfragen

Begonnen von dobra

5 Antworten
6602 Aufrufe
Letzter Beitrag November 03, 2008, 20:52:56
von dobra
xx
Kundenkontoseiten abfragen

Begonnen von dobra

2 Antworten
5035 Aufrufe
Letzter Beitrag Januar 04, 2009, 13:25:11
von dobra
xx
Bildbreite begrenzen

Begonnen von Andi

18 Antworten
13845 Aufrufe
Letzter Beitrag März 31, 2007, 11:55:47
von Andi
xx
verfügbare Anzahl bei GS

Begonnen von dobra

4 Antworten
6347 Aufrufe
Letzter Beitrag März 08, 2007, 05:28:13
von dobra