Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

If Abfrage

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
workershop
PostRank 8
PostRank 8
Beiträge: 697
Registriert: 19.11.2004, 19:08
Wohnort: Leipzig

Beitrag von workershop » 18.11.2006, 13:43

Hallo

Ich möchte einem Script sagen, ist die Kategorie größer als 0, aber nicht Kategorie 511 oder nicht Kategoie 515 usw. dann blende test.html ein.

Es funktioniert aber nicht. was mache ich denn hier falsch?

{if $category.ID >0 and not 511 and not 515 and not 513 and not 516 and not 517 and not 518 and not 522 and not 523 and not 617 and not 659}
{include file="test.html"} {/if}



Danke Ronny

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


haha
PostRank 9
PostRank 9
Beiträge: 1065
Registriert: 03.04.2006, 18:08
Wohnort: Bi Hamborg

Beitrag von haha » 18.11.2006, 15:36

workershop hat geschrieben:{if $category.ID >0 and not 511 and not 515 and not 513 and not 516 and not 517 and not 518 and not 522 and not 523 and not 617 and not 659}
{include file="test.html"} {/if}
Keine Ahnung, was das für eine Sprache ist, aber üblicherweise hat and einen geringeren Bindungswert als > und not. Vielleicht wird es farblich etwas deutlicher, wie der Parser Deine Kette aufdröselt:

$category.ID > 0 and not 511 and not 515

Die roten Teile werden (theoretisch) zuerst ausgewertet und erst dann deren Ergebnisse mit Und verkettet (praktisch bricht Und beim ersten Boolschen Falsch ab, denn ist ein Teil falsch, ist der gesamte Und-Ausdruck falsch und weitere Prüfungen erübrigen sich). Das Ergebnis von "not 511" ist, mal abgesehen davon, dass das so keinen Sinn macht, falsch (false); gleiches gilt bei Deinen anderen "not [Zahl]", lediglich "not 0" ergäbe wahr (true).
Der Punkt ist, dass Nicht (not) üblicherweise kein Vergleichsoperator ist, sondern den Inhalt seines nachfolgenden Parameters, wenn es sich um einen Boolschen Wert handelt, ins Gegenteil umkehrt, aus falsch wird wahr, aus wahr wird falsch. Möchtest Du zwei Werte vergleichen, brauchst Du den Operator für "ungleich", mathematisch ≠ (durchgestrichenes Gleichheitszeichen), in Programmiersprachen häufig != ("nicht gleich") geschrieben, manchmal auch #.

Die Zeile würde nach der ersten Auflösung daher immer so aussehen:

[Ergebnis von id > 0] and false and false

Ich denke, es sollte ab hier klar sein, was rauskommt.

Damit Deine Anweisung wie gewünscht funktioniert, musst Du Deinen Wunsch etwas genauer formulieren: "ist die Kategorie größer als 0 und ist die Kategorie ungleich 511 und ist die Kategorie ungleich 515" etc.

workershop
PostRank 8
PostRank 8
Beiträge: 697
Registriert: 19.11.2004, 19:08
Wohnort: Leipzig

Beitrag von workershop » 18.11.2006, 17:12

Ich komme jetzt nicht mehr ganz mit. Wie muß denn da die Abfrage sein, das die Datei Test.html in jeder Kategorie auser den von mir definierten(511, 515 usw. sind ca 10 Kategorie IDs) angezeigt wird?

workershop
PostRank 8
PostRank 8
Beiträge: 697
Registriert: 19.11.2004, 19:08
Wohnort: Leipzig

Beitrag von workershop » 18.11.2006, 18:25

Ah, jetzt habe ich es begriffen, wie Du das meinst und es funktioniert. Danke.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag