12. januar 2006 - 20:49Der er
12 kommentarer og 1 løsning
Udtræk af database
Hej
Jeg har denne stump kode hvor jeg en liste med alle genre fra en database. Jeg skal så ud for genren, skrive hvor mange film der findes i den pågældende genre.
Problemet ligger i, at i min tabel FILM er værdierne i kolonnen GENRE kommasepareret. For en film kan være listet i flere forskellige genre.
Som mit udtræk viser nu, virker det fint, hvis en film kun har 1 genre, men så snart en film har flere genre fejler den, nogen som kan hjælpe mig ?
<% strGenre = "select * from genre order by genre" Set RSGenre = conn.Execute(strGenre) While Not RSGenre.EOF
'Set rsCount = Conn.Execute("SELECT COUNT(*) AS count FROM film WHERE Genre " & rsGenre("genreID") & " ") Antal = rsCount("count") rsCount. close set rsCount= Nothing %> <tr> <td><a href="?Page=List&ID=<%= RSGenre("GenreID")%>"><%= RSGenre("Genre")%></a></td> <td align="right"><font color="C0C0C0">(<%=antal%>)</font></td> </tr> <% RSGenre.MoveNext Wend Set RSGenre=Nothing %>
Set rsCount = Conn.Execute("SELECT COUNT(*) AS count FROM film WHERE Genre = '" & rsGenre("genreID") & "' OR Genre LIKE '" & rsGenre("genreID") & "',%" OR Genre LIKE '%," & rsGenre("genreID") & "',%" OR Genre LIKE '%," & rsGenre("genreID") & "'"
Set rsCount = Conn.Execute("SELECT COUNT(*) AS count FROM film WHERE Genre = '" & rsGenre("genreID") & "' OR Genre LIKE '" & rsGenre("genreID") & "',%" OR Genre LIKE '%," & rsGenre("genreID") & "',%" OR Genre LIKE '%," & rsGenre("genreID") & "'" ----------------------------------------------------------------------------------------------------------------------------------------------------------------------^
Set rsCount = Conn.Execute("SELECT COUNT(*) AS count FROM film WHERE Genre = '" & rsGenre("genreID") & "' OR Genre LIKE '" & rsGenre("genreID") & ",%'" OR Genre LIKE '%," & rsGenre("genreID") & ",%'" OR Genre LIKE '%," & rsGenre("genreID") & "'"
D får jeg også fejl. Lader til det er noget med de kommaer den er gal med
Fejltype: Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EA) Der er en syntaksfejl /dvddatabase/Default.asp, line 93, column 166 Set rsCount = Conn.Execute("SELECT COUNT(*) AS count FROM film WHERE Genre = '" & rsGenre("genreID") & "' OR Genre LIKE '" & rsGenre("genreID") & ",%'" OR Genre LIKE '%," & rsGenre("genreID") & ",%'" OR Genre LIKE '%," & rsGenre("genreID") & "'" ---------------------------------------------------------------------------------------------------------------------------------------------------------------------^
Set rsCount = Conn.Execute("SELECT COUNT(*) AS count FROM film WHERE Genre = '" & rsGenre("genreID") & "' OR Genre LIKE '" & rsGenre("genreID") & ",%' OR Genre LIKE '%," & rsGenre("genreID") & ",%' OR Genre LIKE '%," & rsGenre("genreID") & "'"
Set rsCount = Conn.Execute("SELECT COUNT(*) AS count FROM film WHERE Genre = '" & rsGenre("genreID") & "' OR Genre LIKE '" & rsGenre("genreID") & ",%' OR Genre LIKE '%," & rsGenre("genreID") & ",%' OR Genre LIKE '%," & rsGenre("genreID") & "'")
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.