Avatar billede lund_dk Praktikant
29. juli 2006 - 22:51 Der er 10 kommentarer og
1 løsning

Fejl i sql sætning

Har denne hvor jeg henter fra Film2Genre ud fra et filmid, men skal liste via Titel i film - men dette giver mig fejl, hvad gør jeg galt?

<%
        strGenre1 = "select Film.titel, Genre.genreid * from Film2Genre where Film2Genre.filmid = " & ID & " order by Film.titel "
        Set RSGenre1 = conn.Execute(strGenre1)
        While Not RSGenre1.EOF   
        %>
        <option value="<%= RSGenre1("GenreID")%>">ID <%= RSGenre1("genreid")%></option>
        <%
        RSGenre1.MoveNext
        Wend
        Set RSGenre1=Nothing
        %>
Avatar billede lund_dk Praktikant
29. juli 2006 - 22:52 #1
fejlen:
[MySQL][ODBC 3.51 Driver][mysqld-4.0.15]You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'from Film2Genre where Film.filmid = 21 order by Film.titel' at
Avatar billede lund_dk Praktikant
29. juli 2006 - 22:53 #2
Hov, nej denne fejl:
[MySQL][ODBC 3.51 Driver][mysqld-4.0.15]You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'from Film2Genre where Film2Genre.filmid = 21 order by Film.tite
Avatar billede michael_stim Ekspert
29. juli 2006 - 22:54 #3
Du har en * for meget.
strGenre1 = "select Film.titel, Genre.genreid from Film2Genre where Film2Genre.filmid = " & ID & " order by Film.titel "
Avatar billede pidgeot Nybegynder
29. juli 2006 - 22:56 #4
Den SQL sætning giver INGEN mening. Du vælger data fra to tabeller, men din FROM indeholder en helt tredje.

Fejlen kommer dog fordi den * står uadskilt fra Genre.genreid - den skal enten væk, eller også skal der et komma før den.
Avatar billede lund_dk Praktikant
29. juli 2006 - 23:07 #5
Er forholdsvis ny i det med at "blande" 2 tabeller sammen, så derfor kan det sagtes være det jeg har lavet er det rene molapyk.

Men det den skal gøre er:

strGenre1 = "select * from Film2Genre where filmid = " & ID & ""

Jeg skal dog bare have den til at ORDER BY titel i tabellen Film, så skidtet lister sig i alfabetisk orden..
Avatar billede lund_dk Praktikant
29. juli 2006 - 23:10 #6
Et eller andet i stil med
strGenre1 = "select Film.titel, Film2Genre.genreid from Film2Genre where Film2Genre.filmid = " & ID & " order by Film.titel


"Genre.genreid " som jeg skrev i den anden, var en fejl, der skulle hav stået "Film2Genre.genreid "
Avatar billede pidgeot Nybegynder
29. juli 2006 - 23:33 #7
Nu ved jeg jo ikke præcist hvilket felt der binder de to tabeller sammen, men mon ikke det ser nogenlunde sådan ud:

strGenre1 = "SELECT Film.titel, Film2Genre.genreid FROM Film, Film2Genre WHERE Film.id = " & ID & " AND Film2Gerne.filmid=Film.id"
Avatar billede lund_dk Praktikant
29. juli 2006 - 23:55 #8
Jeg har rodet lidt rundt i det selv,og skrevet forkert her inde, men det du kom med var korrekt, jeg tilpassede det bare lige til det korrekte

strGenre1 = "SELECT Film2Genre.genreid, Genre.genre FROM Film2Genre, Genre WHERE Film2Genre.filmid = " & ID & " AND Film2Genre.genreid=Genre.genreid order by Genre.genre"

Når jeg så vil udskrive filmens titel, fra Film.titel skriver jeg
Genre1("titel")
men det giver mig en fejl, hvorfor?
Avatar billede lund_dk Praktikant
30. juli 2006 - 00:01 #9
Nevermindt,igen min fejl,hvor jeg roder rundt i det.. det hele virker nu..smider du et svar?
Avatar billede pidgeot Nybegynder
30. juli 2006 - 00:07 #10
Gerne. :)

Husk fremover at du i din FROM skal have alle de tabeller med du skal bruge, og at de skal kædes sammen i WHERE (eller med en JOIN).
Avatar billede lund_dk Praktikant
30. juli 2006 - 00:21 #11
Er nyt område for mig, så skal lii arbejde en smule mere med det for at forstå det helt..men allerede nu begynder jeg at have en ide om det..

Hvis du er frisk, så har jeg et ligende spørgsmål her: http://www.eksperten.dk/spm/723011
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester