Forum - Beitrag anzeigen

CF-Basics - RE: Dynamische Tabellen

Icon Pfeil Startseite Icon Pfeil Kategorie Icon Pfeil Suche

Icon Forum Beitrag vom 21.09.2001 13:24 (808 Aufrufe)
Name: mraphelt
Titel: RE: Dynamische Tabellen
Inhalt:
>Ich will mich eigentlich nur bedanken, ich versuche ja auch das was ich hier lese nachzuvollziehen , mit den Coldfusion Buch und mit einem anderen CF Buch von D. Stass, leider ist das nicht immer einfach, Alonsos "weg konnte ich verstehen, warum muss <cfif not qstellen.CurrentRow mod 2> ? weil keine Farbwerte angenommen werden können? Und warum "not" und nicht NEQ ?

hi,

okay, ich versuche mal, das ganze relativ verständlich in worte zu fassen:

angenommen, du schickst eine query an eine datenbank:

<cfquery name="bla" datasource="blubb">
select name, vorname from adressen
</cfquery>

...und mal angenommen, du bekommst 34 einträge zurück.
"currentrow" repräsentiert immer die aktuelle zeile, die gerade ausgegeben wird, also:

<cfoutput query="bla">
Adresse Nr. #currentrow#: #name# #vorname#<br>
</cfoutput>

Das Ergebnis wäre:

Adresse Nr. 1: Mustermann Hans
Adresse Nr. 2: fdshf Ggfdg
...
Adresse Nr. 34: Müller Frank

So.

"MOD" gibt dir den rest einer division durch die angegebene zahl zurück.
10 MOD 2 = 0, weil 10 durch 2 teilbar ist.
11 MOD 2 = 1, weil 11 / 2 = 5, rest 1.

coldfusion interpretiert "0" als "FALSE", zahlen größer 0 als "TRUE", deshalb kann man integer-werte wie boolsche werte abfragen, also

<cfset x=5>
<cfif x>
Zahl ist größer Null!
<cfelse>
zahl ist gleich null!
</cfif>

Das Gegenteil wäre:

<cfset x=0>
<cfif not x>
Zahl ist gleich Null!
<cfelse>
zahl ist größer null!
</cfif>

zurück zu deinem farbwechsel:
wenn ich jetzt also fragen will, ob die aktuell ausgegebene "currentrow" nicht durch zwei teilbar ist (also nicht gerade ist), könnte ich das wie folgt tun:

<cfif (qstellen.CurrentRow mod 2) gt 0>
[...]
</cfif>

da MOD aber immer eine zahl zurückgibt und man zahlen als wahrheitswerte interpretieren kann (wahrheitsvergleiche sind schneller), bietet es sich hier an, diese cf-eigenart zu nutzen und einfach abzufragen, ob der rest der division TRUE oder FALSE ist:

<cfif not qstellen.currentrow mod 2>
<cfset farbe="yellow">
<cfelse>
<cfset farbe="white">
</cfif>

wenn also der rest der division von qstellen.currentrow / 2 = 0 ist, ist currentrow gerade, demzufolge wird "yellow" als farbe gewählt.

alles klar? :-)


Mit freundlichen Grüßen
Marcus Raphelt

Antworten
  • Keine Antworten vorhanden.

Bitte melden Sie sich kostenlos an, um eine Antwort auf diesen Beitrag zu erstellen.


Das deutsche ColdFusion-Forum cfml.de ist das Portal für Einsteiger und Experten zum Thema ColdFusion und der ColdFusion Markup Language (CFML).

© 2017 Webdesign & Hosting: CHC ONLINE Kassel | SOLVA Content-Management-System CMS
Urlaub-Angebote.de - Urlaub mit Bestpreis-Garantie buchen