webForumDet fria alternativet

loopelliloop

14 svar · 347 visningar · startad av sven

svenMedlem sedan aug. 2001383 inlägg
#1

Jag har dennakoden just nu.....

<html>
<head>
<!-- #include file="../connectt.asp" -->
<!-- #include file="../text.css" -->
<title>Databokning</title>
</head>
<body>
<%
DagensDatum = Date
Nu = Time 
%>
<table border="1" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" cellspacing="0" height="67">
  <tr>
    <th width="714" colspan="5" height="27"><font size="4"><% = DagensDatum %>&nbsp;&nbsp;&nbsp;&nbsp;Klockan är nu <% = FormatDateTime(Nu,4) %></font></th>
  </tr>
  <tr>
    <th width="87" height="19">Tid</th>
    <th width="150" height="19">Mia</th>
    <th width="150" height="19">Monica</th>
    <th width="150" height="19">Thorsten</th>
    <th width="150" height="19">Ronny</th>
  </tr>
<%  
Tid = #16:15#
while Tid <= #21:45#

SQL = " SELECT * FROM bokning WHERE datum = #2002-03-21# "
set rs = db.Execute(SQL)

datornamn = rs("dator")  
strNamn = rs("namn")
bokadTid = rs("tid")
%>  
  <tr>
    <td width="87" height="19">&nbsp;<% = FormatDateTime(Tid,4) %></td>
    <%
    if datornamn = "Mia" AND bokadTid = Tid then
    %>
    <td width="150" height="19">&nbsp;<% = strNamn %></td>
    <%
    else
    %>
	<td width="150" height="19">&nbsp;</td>
	<%
    end if

    if datornamn = "Monica" AND bokadTid = Tid then
    %>
    <td width="150" height="19">&nbsp;<% = strNamn %></td>
    <%
    else
    %>
	<td width="150" height="19">&nbsp;</td>
	<%
    end if

    if datornamn = "Thorsten" AND bokadTid = Tid then
    %>
    <td width="150" height="19">&nbsp;<% = strNamn %></td>
    <%
    else
    %>
	<td width="150" height="19">&nbsp;</td>
	<%
    end if

    if datornamn = "Ronny" AND bokadTid = Tid then
    %>
    <td width="150" height="19">&nbsp;<% = strNamn %></td>
    <%
    else
    %>
	<td width="150" height="19">&nbsp;</td>
	<%
    end if
    %>
  </tr>
<%
Tid = dateadd("n",30,Tid)
wend  
%>  
</table>
</body>
</html>

Min fråga är nu.... hur får jag SQL satsen att loopa? Eller är jag helt fel ute?

@ndersMedlem sedan juni 200032 969 inlägg
#2
set rs = db.Execute(SQL)
while not rs.eof
.
.
.
.
.
rs.movenext
wend

Mvh,

svenMedlem sedan aug. 2001383 inlägg
#3

Nu blev loopen lite konstig....http://www.appelgren.net/annattest/
Ser kanske inte så snyggt ut.... Framför allt vill jag inte ha det riktigt så :)

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#4

Menar du att den skriver ut flera av varje tidpunkt?

i så fall kan du skriva:

SQL = " SELECT * FROM bokning WHERE [datum] = #2002-03-21# GROUP BY [datum] ORDER BY [datum]"
svenMedlem sedan aug. 2001383 inlägg
#5

Jepp.... sen skriver den inte ut allt från databasen..... ex om jag har bokning på två datorer... ( ja våra datorer heter Monica, Ronny osv) vid samma tid...

svenMedlem sedan aug. 2001383 inlägg
#6

Den gillar inte *

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#7

Vad får du för fel?

jag gissar på att något reserverat ord finns bland fälten bakom *. Ta som vana att alltid skriva ut dina fältnamn.

SELECT field1, field2, field3, field4 osv

datum är ett reserverat ord i många sql-dialekter. Det var därför jag klammrade det.

mvh Jörgen HP

svenMedlem sedan aug. 2001383 inlägg
#8

Nu har jag ändrat på alla fältord...
Så här ser SQL satsen ut

SQL = " SELECT ddatum, ddator, namn, ttid FROM bokning WHERE ddatum = #2002-03-21# GROUP BY ddatum ORDER BY ddatum"

Nu gillar den inte ordet ddator... eller så som det står...
You tried to execute a query that does not include the specified expression 'ddator' as part of an aggregate function.
Hmmm... :q

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#9

Denna kan nog hjälpa dig på traven:

http://www.webforum.nu/showthread.php?s=&threadid=10187&highlight=aggregate+function

Om du inte vill använda GROUP BY kan du ju välja distinct på tidpunkten för att slippa dubletter.

svenMedlem sedan aug. 2001383 inlägg
#10

Förstår inte riktigt... Om jag tar med alla fälten och skriver dom i GROUP BY så blir det ju ingen skillnad...

@ndersMedlem sedan juni 200032 969 inlägg
#11

Menar du att den skriver ut flera av varje tidpunkt?

Man kan ju alltid sätta kontrollvariabler i asp för att se till att man inte skriver ut datumen mer än en gång.

Är iofs inte hundra på att jag förstått problemet. :)

Mvh,

svenMedlem sedan aug. 2001383 inlägg
#12

Facit

@nders hjälpte mig... och ändrade allt (nästan) ((tack))

<html>
<head>
<!-- #include file="../connectt.asp" -->
<!-- #include file="../text.css" -->
<title>Databokning</title>
</head>
<body>
<%
DagensDatum = Date
Nu = Time 
%>
<table border="1" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" cellspacing="0" height="67">
  <tr>
    <th width="714" colspan="5" height="27"><font size="4"><% = DagensDatum %>&nbsp;&nbsp;&nbsp;&nbsp;Klockan är nu <% = FormatDateTime(Nu,4) %></font></th>
  </tr>
  <tr>
    <th width="87" height="19">Tid</th>
    <th width="150" height="19">Mia</th>
    <th width="150" height="19">Monica</th>
    <th width="150" height="19">Thorsten</th>
    <th width="150" height="19">Ronny</th>
  </tr>
<%  
SQL = " SELECT ddatum, ddator, namn, ttid FROM bokning WHERE ddatum = #2002-03-21# ORDER BY ddatum"
set rs = db.Execute(SQL)

Tid = #16:15#
while Tid <= #21:45#
NewTime = Tid
strMia = "&nbsp;"
strMonica = "&nbsp;"
strThorsten = "&nbsp;"
strRonny = "&nbsp;"

rs.movefirst
while not rs.eof
datornamn = rs("ddator")  
strNamn = rs("namn")
bokadTid = FormatDateTime(rs("ttid"),4)
jmfTid = FormatDateTime(Tid,4)
if datornamn = "Mia" AND bokadTid = jmfTid then strMia = strNamn    
if datornamn = "Monica" AND bokadTid = jmfTid then strMonica = strNamn    
if datornamn = "Thorsten" AND bokadTid = jmfTid then strThorsten = strNamn    
if datornamn = "Ronny" AND bokadTid = jmfTid then strRonny = strNamn    
rs.movenext
wend
%>  
  <tr>
    <td width="87" height="19">&nbsp;<% = FormatDateTime(Tid,4) %></td>
    <td width="150" height="19">&nbsp;<% = strMia %></td>
    <td width="150" height="19">&nbsp;<% = strMonica %></td>
    <td width="150" height="19">&nbsp;<% = strThorsten %></td>
    <td width="150" height="19">&nbsp;<% = strRonny %></td>
  </tr>
<%
Tid = dateadd("n",30,Tid)
wend  
%>  
</table>
</body>
</html>

Snyggt va?

svenMedlem sedan aug. 2001383 inlägg
#13

Tänkte göra en ändring....

Så här ser det ut nu...

strMia = "&nbsp;"

Men jag skulle vilja ha typ så här istället...

strMia = "<a href='new.asp?dator=Mia&tid='NewTime' '>Lägg till</a>"

Men jag får inget värde med i tid... Något fnutt problem eller är jag helt fel ute?

@ndersMedlem sedan juni 200032 969 inlägg
#14
strMia = "<a href='new.asp?dator=Mia&tid=" & NewTime & "'>Lägg till</a>"

Mvh,

svenMedlem sedan aug. 2001383 inlägg
#15

Tackar.... Nu fick jag användning av NewTime... jag sa ju att jag skulle det :)

129 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)