Just nu i M3-nätverket
Jump to content

Hämta data sorterat i kategorier :S


Vinnaren

Recommended Posts

Hej

 

Jag behöver lite hjälp med en sak jag ska göra.

 

Jag har följande kod

 


[MÄRK]<%[/MÄRK] [b]Response[/b].Buffer = [color="#0000ff"]True[/color] [MÄRK]%>[/MÄRK]
<LINK REL=stylesheet HREF=[GRÅ]"../stil.css"[/GRÅ] TYPE=[GRÅ]"text/css"[/GRÅ]>
[MÄRK]<%[/MÄRK]

[color="#0000ff"]Set[/color] Conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ]) 
Conn.Open [GRÅ]"driver={Microsoft Access Driver (*.mdb)};dbq="[/GRÅ] & [b]Server[/b].MapPath([GRÅ]"../../db/allsvenskan.mdb"[/GRÅ])&[GRÅ]";"[/GRÅ]

[color="#0000ff"]Set[/color] news = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Recordset"[/GRÅ])

Addera = [GRÅ]"SELECT * FROM klubbar WHERE id = "[/GRÅ] &[b]Request[/b].QueryString([GRÅ]"visa"[/GRÅ])
news.Open Addera, Conn, 1, 2
[MÄRK]%>[/MÄRK]

<html>
<head>
<link rel=[GRÅ]"stylesheet"[/GRÅ] href=[GRÅ]"../.././stil.css"[/GRÅ] type=[GRÅ]"text/css"[/GRÅ]>
<style>
<!--
a{text-decoration:none}
//-->
</style>
<script language=[GRÅ]"JavaScript"[/GRÅ] type=[GRÅ]"text/javascript"[/GRÅ]>
<!-- 
[color="#0000ff"]Function[/color] fixUglyIE()
{
[color="#0000ff"]For[/color] (a [color="#0000ff"]In[/color] document.links) document.links[a].onfocus = document.links[a].blur;
}
[color="#0000ff"]If[/color] (document.all)
{
document.onmousedown = fixUglyIE;
}
// -->
</script>
</head>
<body link=[GRÅ]"#000000"[/GRÅ] vlink=[GRÅ]"#000000"[/GRÅ] alink=[GRÅ]"#000000"[/GRÅ] style=[GRÅ]"font-family: Verdana"[/GRÅ]>
<table [color="#0000ff"]Class[/color]=[GRÅ]"ljus"[/GRÅ] border=[GRÅ]"0"[/GRÅ] width=[GRÅ]"530"[/GRÅ] id=[GRÅ]"table1"[/GRÅ]>
<tr>
	<td width=[GRÅ]"403"[/GRÅ]>
<table border=[GRÅ]"1"[/GRÅ] cellpadding=[GRÅ]"0"[/GRÅ] cellspacing=[GRÅ]"0"[/GRÅ] style=[GRÅ]"border-width:0; border-collapse: collapse"[/GRÅ] bordercolor=[GRÅ]"#111111"[/GRÅ] width=[GRÅ]"400"[/GRÅ] id=[GRÅ]"table2"[/GRÅ]>
  <tr>
    <td width=[GRÅ]"100%"[/GRÅ] style=[GRÅ]"border-style: none; border-width: medium"[/GRÅ]>
<img  src=[GRÅ]"<%=news("[/GRÅ]Bild_nyhet[GRÅ]")%>"[/GRÅ] style=[GRÅ]"border: 2px solid #000000"[/GRÅ] width=[GRÅ]"400"[/GRÅ] height=[GRÅ]"200"[/GRÅ]></td>
  </tr>
  <tr>
    <td width=[GRÅ]"100%"[/GRÅ] style=[GRÅ]"border-style: none; border-width: medium"[/GRÅ]>
<i><font size=[GRÅ]"1"[/GRÅ]>
[MÄRK]<%[/MÄRK]=news([GRÅ]"bild_text"[/GRÅ])[MÄRK]%>[/MÄRK]<br>
</font></i><br>
<b><font size=[GRÅ]"4"[/GRÅ]>
[MÄRK]<%[/MÄRK]=news([GRÅ]"klubb"[/GRÅ])[MÄRK]%>[/MÄRK]</font></b><br>
<br></td>
  </tr>
  <tr>
    <td width=[GRÅ]"100%"[/GRÅ] style=[GRÅ]"border-style: none; border-width: medium"[/GRÅ]><font >
<font style=[GRÅ]"font-size: 8pt"[/GRÅ]>[MÄRK]<%[/MÄRK]=[color="#0000ff"]Replace[/color](news([GRÅ]"fakta"[/GRÅ]),vbCrLf,[GRÅ]"<br>"[/GRÅ])[MÄRK]%>[/MÄRK]</font> </font></td>
  </tr>

</table>
	</td>
</tr>
</table>
[MÄRK]<%[/MÄRK]
news.Close
Conn.Close
[color="#0000ff"]Set[/color] news = [color="#0000ff"]Nothing[/color]
[color="#0000ff"]Set[/color] Conn = [color="#0000ff"]Nothing[/color]
[MÄRK]%>[/MÄRK]

</body>
</html>

 

Nu vill jag även hämta data från en annan tabell i smma databas. Rubriken (namn) ska vara samma som kolumnen klubb i tabellen spelare. Så att bara spelarna i AIK tex ligger under AIK osv.

Sen så vill jag att spelarna ska sorteras efter position (plats), tex Målvakterna ska hamna under målvakter osv.

 

Undrar då om någon kan hjälpa mig om det går att göra?

Hoppas att ni förstår hur jag menar

 

[inlägget ändrat 2006-05-21 18:13:21 av Vinnaren]

Link to comment
Share on other sites

DanielForPresident

Vad är det du behöver hjälp med, SQLen för att hämta infon från databasen?

 

Link to comment
Share on other sites

japp, bla. Men det blir väll flera SQL satser, en för Målvakt, en för Försvarare, mittfält, Anfallare?

 

Link to comment
Share on other sites

DanielForPresident

Nu vet jag inte hur din tabellstruktur ser ut och då är det lite svårt att bara skriva ett script till dig rakt upp och ner. Förmodligen kan man lösa det på lite olika sätt, både genom flera SQL satser och genom att gruppera och/eller sortera raderna i ett recordset och komma undan med en SQL sats. Om du kan redogöra lite enkelt för hur dina tabeller ser ut blir det enklare att hjälpa till med ledtrådar för ett script.

 

Link to comment
Share on other sites

ok, i tabellen klubbar: klubb, datum, fakta, id, logga, serie.

samt i spelare: id, namn, klubb, fakta, plats

 

det kanske är lättast med flera SGL satser.

 

typ:

 

Målvakte:

Set objRS=objConn.Execute("SELECT * FROM spelare WHERE plats='Målvakt' ORDER BY namn ASC")

 

men hur gör man så att spelarna hamnar under rätt lag?

 

Link to comment
Share on other sites

har försökt lite själv men får det inte att fungera, hela koden jag har är:

 

<% Response.Buffer = True %>
<LINK REL=stylesheet HREF="../stil.css" TYPE="text/css">
<%

Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../../db/allsvenskan.mdb")&";"

Set news = Server.CreateObject("ADODB.Recordset")

Addera = "SELECT * FROM klubbar WHERE id = " &Request.QueryString("visa")
news.Open Addera, Conn, 1, 2
%>

<html>
<head>
<link rel="stylesheet" href="../.././stil.css" type="text/css">
</head>
<body link="#000000" vlink="#000000" alink="#000000" style="font-family: Verdana">

<table>
 <tr>
   <td width="100%">
<img  src="<%=news("Bild_nyhet")%>" style="border: 2px solid #000000" width="400" height="200"></td>
 </tr>
 <tr>
   <td width="100%">
<i><font size="1">
<%=news("bild_text")%><br>
</font></i><br>
<b><font size="4">
<%=news("klubb")%></font></b><br>
<br></td>
 </tr>
 <tr>
   <td width="100%"><font >
<font style="font-size: 8pt"><%=Replace(news("fakta"),vbCrLf,"<br>")%></font>&nbsp;</font></td>
 </tr>


<%
Addera = "SELECT * FROM spelare WHERE plats='Målvakt' AND klubb = " &Request.QueryString("visa")
news.Open Addera, Conn, 1, 2
%>

<td width="100%"><font >
<font style="font-size: 8pt">Målvakter<br>
<%=news("namn")%></font>&nbsp;</font></td>
</tr>

<%
Addera = "SELECT * FROM spelare WHERE plats='försvarare' AND klubb = " &Request.QueryString("visa")
news.Open Addera, Conn, 1, 2
%>

<td width="100%"><font >
<font style="font-size: 8pt">Försvarare<br>
<%=news("namn")%></font>&nbsp;</font></td>
</tr>

<%
Addera = "SELECT * FROM spelare WHERE plats='Mittfältare* AND klubb = " &Request.QueryString("visa")
news.Open Addera, Conn, 1, 2
%>

<td width="100%"><font >
<font style="font-size: 8pt">Mittfältare<br>
<%=news("namn")%></font>&nbsp;</font></td>
</tr>

<%
Addera = "SELECT * FROM spelare WHERE plats='Anfallare' AND klubb = " &Request.QueryString("visa")
news.Open Addera, Conn, 1, 2
%>

<td width="100%"><font >
<font style="font-size: 8pt">Anfallare<br>
<%=news("namn")%></font>&nbsp;</font></td>
</tr>

<%
Addera = "SELECT * FROM spelare WHERE plats='Tränare' AND klubb = " &Request.QueryString("visa")
news.Open Addera, Conn, 1, 2
%>

<td width="100%"><font >
<font style="font-size: 8pt">Tränare<br>
<%=news("namn")%></font>&nbsp;</font></td>
</tr>
</table>

<%
news.Close
Conn.Close
Set news = nothing
Set Conn = nothing
%>

</body>
</html>

 

får felmeddelandet:

ADODB.Recordset (0x800A0E79)

Åtgärden är inte tillåten när objektet är öppet.

 

Hur gör man för att det ska fungera??

 

Link to comment
Share on other sites

har lagt in

<%

news.Close

%>

 

efter varje, men får nu ett annat felmeddelande:

 

Feltyp:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)

[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.

 

på raden nere vid målvakterna

news.Open Addera, Conn, 1, 2

 

Vad kan det vara för fel? eller är det fel på hela uttrycket

Addera = "SELECT * FROM spelare WHERE plats='Målvakt' AND klubb = " &Request.QueryString("visa")

 

Link to comment
Share on other sites

har lagt in

<%

news.Close

%>

 

efter varje, men får nu ett annat felmeddelande:

 

Feltyp:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)

[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.

 

på raden nere vid målvakterna

news.Open Addera, Conn, 1, 2

 

Vad kan det vara för fel? eller är det fel på hela uttrycket

Addera = "SELECT * FROM spelare WHERE plats='Målvakt' AND klubb = " &Request.QueryString("visa")

 

Link to comment
Share on other sites

DanielForPresident

Testa:

 

 

Addera = "SELECT * FROM spelare WHERE plats='Målvakt' AND klubb = '" & Request.QueryString("visa") & "'"

 

Du måste ha ' (enkel-fnutt) runt texten i vilkoret.

 

Annars ser det bra ut! :)

 

 

Link to comment
Share on other sites

ok, nu får jag ett annat felmeddelande:

ADODB.Field (0x80020009)

Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.

 

vad kan det vara för fel nu :S??? Finns massor med poster i både tabellen klubb och tabellen spelare :S

 

Link to comment
Share on other sites

DanielForPresident

Förmodligen försöker du ta fram (ev. loopa) fram poster som inte finns på något sätt. Finns det bara 10 poster kan du inte hämta den 12e, då brukar man få något liknande fel.

 

Link to comment
Share on other sites

har följande kod nu:

 



<%...%>
<%
Addera = "SELECT * FROM spelare WHERE plats='Målvakt' AND klubb = '" &Request.QueryString("visa") & "'"
news.Open Addera, Conn, 1, 2
if not news.eof then
%>

<td width="100%"><font >
<font style="font-size: 8pt">Målvakter<br>
<%=news("namn")%></font>&nbsp;</font></td>
</tr>


<%...%>
<%
end if
news.close

Addera = "SELECT * FROM spelare WHERE plats='försvarare' AND klubb = '" &Request.QueryString("visa") & "'" 
news.Open Addera, Conn, 1, 2
if not news.eof then
%>

<td width="100%"><font >
<font style="font-size: 8pt">Försvarare<br>
<%=news("namn")%></font>&nbsp;</font></td>
</tr>


<%...%>
<%
end if
news.close

Addera = "SELECT * FROM spelare WHERE plats='Mittfältare' AND klubb = '" &Request.QueryString("visa") & "'"
news.Open Addera, Conn, 1, 2
if not news.eof then
%>

<td width="100%"><font >
<font style="font-size: 8pt">Mittfältare<br>
<%=news("namn")%></font>&nbsp;</font></td>
</tr>


<%...%>
<%
end if
news.close

Addera = "SELECT * FROM spelare WHERE plats='Anfallare' AND klubb = '" &Request.QueryString("visa") & "'"
news.Open Addera, Conn, 1, 2
if not news.eof then
%>

<td width="100%"><font >
<font style="font-size: 8pt">Anfallare<br>
<%=news("namn")%></font>&nbsp;</font></td>
</tr>


<%...%>
<%
end if
news.close

Addera = "SELECT * FROM spelare WHERE plats='Tränare' AND klubb = '" &Request.QueryString("visa") & "'"
news.Open Addera, Conn, 1, 2
if not news.eof then
%>

<td width="100%"><font >
<font style="font-size: 8pt">Tränare<br>
<%=news("namn")%></font>&nbsp;</font></td>
</tr>
</table>


<%...%>
<%
end if
news.close
%>

 

men nu så får jag inget felmeddelande, men inga spelare kommer fram.

Jag tror att Request.QueryString("visa") är fel då den går efter ID, jag vill ju att den ska gå efter klubb, hur gör man det?

 

Link to comment
Share on other sites

Micke_skane

Hur tilldelar du värdet till din Request.QueryString("visa")?

Om du nu vill ändra värdet till ett sträng-värde innehållande ett klubbnamn så får du ändra på stället där du tilldelar värdet.

 

Ska du använda ett id-värde så är det rätt bra om du ger varje klubb ett klubbId och därigenom hämtar ut rätt klubb med begärt klubbId.

 

Link to comment
Share on other sites

Ett annat probleme är att jag vill att klubben man väljer även ska komma upp i en ruta vid namn klubb

 

koden jag har:

 

<[color="#0000ff"]Select[/color] name=[GRÅ]"klubb_id"[/GRÅ] onChange=[GRÅ]"this.form.klubb.value=this[this.selectedIndex].value;"[/GRÅ] style=[GRÅ]"width: 150px;"[/GRÅ]>




[MÄRK]<%[/MÄRK]
[color="#0000ff"]Set[/color] objRS = objConn.[color="#0000ff"]Execute[/color]([GRÅ]"SELECT * FROM klubbar"[/GRÅ])
[color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] objRS.eof [color="#0000ff"]Then[/color]
[color="#0000ff"]Do[/color] until objRS.EOF
[b]Response[/b].write [GRÅ]"<option value="[/GRÅ][GRÅ]""[/GRÅ]&objRS([GRÅ]"id"[/GRÅ])&[GRÅ]""[/GRÅ][GRÅ]">"[/GRÅ]&objRS([GRÅ]"klubb"[/GRÅ]) & [GRÅ]"</option>"[/GRÅ]
objRS.Movenext
[color="#0000ff"]Loop[/color]
objRS.close
[color="#0000ff"]Else[/color]
objRS.close
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[MÄRK]%>[/MÄRK]
</[color="#0000ff"]Select[/color]></font><font size=[GRÅ]"2"[/GRÅ] face=[GRÅ]"Verdana"[/GRÅ]><br>





<input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"klubb"[/GRÅ] onKeyUp=[GRÅ]"searchlist(this.value,this.form.lista);"[/GRÅ] onKeyPress=[GRÅ]"searchlist(this.value,this.form.lista);"[/GRÅ] style=[GRÅ]"width: 325;height:22"[/GRÅ]><br>


 

 

Nu kommer det bara fram klubbens ID, det är klubbens namn jag vill visa i textrutan. i Dropdownmenyn så funkar det som det ska

 

[inlägget ändrat 2006-05-23 21:42:32 av Vinnaren]

Link to comment
Share on other sites

Micke_skane
Nu kommer det bara fram klubbens ID, det är klubbens namn jag vill visa i textrutan.
Vad är det för något som du lägger in som värde i varje option-element?

Ett id-värde eller ett strängvärde... :)

 

Det är ju det värdet som du får i din textruta.

 

Link to comment
Share on other sites

men hur gör man så att det kommer upp i textrutan det man väljer?

 

har koden som jag nämde ovan.

JAg vill alltså välja tex GAIS så då ska GAIS ID nummer sparas i tabellen klubb_id samt så vill jag att GAIS ska komma fram i textrutan med. Varför jag har textrutan är för att man ska kunna skriva in en annan klubb som inte finns med i dropdown rutan

 

själva sparande delen


' Sparar nyheten
ElseIf Request.QueryString("visa") = "nyhetspara" AND Session("Admin") = "true" Then

strDatum		= now()
strklubb		= SafeSQL(Request.Form("klubb"))
strfakta		= SafeSQL(Request.Form("fakta"))
strnamn		    = SafeSQL(Request.Form("namn"))
strbild		    = SafeSQL(Request.Form("bild"))
strplats	    = SafeSQL(Request.Form("plats"))
strklubb_id	    = SafeSQL(Request.Form("klubb_id"))

objConn.Execute("INSERT INTO spelare (Datum,klubb,fakta,namn,bild,plats,klubb_id) " & _
"VALUES (#" & strDatum & "#,'" & strklubb & "','" & strfakta & "','" & strnamn & "','" & strbild & "','" & strplats & "','" & strklubb_id & "')")


' Stänger och förstör alla objekt
Set objRS = nothing : objConn.Close : Set objConn = nothing

 

Link to comment
Share on other sites

Micke_skane

Har inte tid att sätta mig in i din kod just nu men av vad jag förstått så borde du skriva ut Klubbnamnen i en array(javascript) och med javascript sen hämta ut rätt namn med id-et man har valt i din selectlista.

Presentera namnet i din textruta.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...