Schleife durchlaufen bis sich Wert ändert

S

Sarah90

Hi!

Vorab mal ein Ausschnitt meines SQL-Befehls:

Code:
SELECT fk.bezeichnung, fk.sort fksort, f.* FROM faq_kat fk, faq f where fk.id=f.kat_id order by fk.sort,f.sort
unbenanntwf5y.png


Nun möchte ich jeweils den ersten Eintrag auslesen, der nach einem rs.movenext eine neue kat_id (die entsprechenden Einträge habe ich zur Veranschaulichung rot markiert). Müsste eigentlich ganz einfach über eine Schleife gehen, nur ich steh wohl gerade auf dem Schlauch, wie ich das am besten anstelle - bisher hatte ich mit Do-Until-Schleifen keinen Erfolg in dieser Hinsicht.

Das wäre mein erstes Problem.
Anschließend soll für jede kat_id ein DIV-Container erstellt werden (ist ja kein Problem wenn ich die entsprechende Schleife hätte) - In diesem DIV-Container allerdings sollen die Einträge von subject und text erscheinen.
Beispiel: Für kat_id = 1 soll ein DIV-Container geöffnet werden, der die Fragen enthält, die ebenfalls kat_id = 1 haben.
Ist am Bild aber glaube ich sehr anschaulich zu sehen!

Eigentlich kein schwieriges Problem, nur der richtige Ansatz fehlt mir.

Danke für eure Hilfe!
Gruß
 
Hi,

mit ASP kann ich Dir zwar nicht direkt helfen, aber was Du erreichen möchtest, nennt sich "Gruppenwechsel". Such mal hier danach, da solltest Du einige Threads mit Beispielen (wenn auch in anderen Sprachen) finden.

LG
 
Hallo

Du definierst eine Variable und vergleichst sie in der Schleife mit sich selbst. Die Variable bekommt in der Schleife den Wert des Detailfeldes oder der ID. Es wird in dem Falle erst ein neues Feld beschrieben, wenn die Variable einen neuen Wert bekommt. Wichtig ist, dass natürlich in der SQL nach dem Detailfeld sortiert wird.

bsp.

Code:
<%
dim iswas : iswas = ""

while not rs.eof
	if iswas = "" or iswas <> rs("detailfeld") then
		response.write "<div style=""color:red"">" & rs("detailfeld") & "</div>"
	iswas = rs("detailfeld")
	end if
response.write rs("ausgabefeld") & "<br/>"
rs.movenext
wend
%>

Interessant in mysql ist auch die Funktion Group_concat.
 
Zurück