11. juli 2003 - 22:32
Der er
12 kommentarer og 1 løsning
Hent data fra 2 tabeller samtidig
Jeg har en tabel hvor alle mine venner står registreret med deres eget person id (tabelnavn er "PersonTabel") og en tabel hvor alle beskeder står i registreret efter personid (tabelnavn er "venindlaeg") Hvordan kan jeg få sat det rigtige navn på det rigtige personid... håber i forstår.. eller skriv det..!!! Takker!!
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Du kan lave en INNER JOIN som denne: SQL = "SELECT persontabel.navn, venindlaeg.* FROM venindlaeg INNER JOIN persontabel ON venindlaeg.personID = persontabel.ID"
kræver det ikke at der de samme kolonner i begge tabeller ???
Nej den ligger rækken fra persontabel ind sammen med rækken i venindlaeg hvor ID og brugerID er ens i de to tabeller. persontabel ID navn 1 per 2 ole venindlaeg brugerID besked tilID 1 Hej ole 2 Så bliver det til: navn besked tilID per Hej ole 2
jamen jeg bruger ikke noget SQL.... mine strenge ser således ud indlaeg.Open "SELECT * FROM dagbogsindlaeg WHERE dato= date() ORDER BY dato " & tid, database Hvad gør jeg så???
Dette er din SQL sætning i den linje. "SELECT * FROM dagbogsindlaeg WHERE dato= date() ORDER BY dato " & tid
jeg har ændret på min database så det ser ud som følgende Jeg har en tabel hvor alle mine venner står registreret med deres eget person id (tabelnavn er "PersonTabel") og en tabel hvor alle beskeder står i registreret efter personid (tabelnavn er "dindlaeg") Set indlaeg = Server.CreateObject ("ADODB.Recordset") indlaeg.Open "SELECT * FROM dindlaeg WHERE dato= date() ORDER BY dato " & tid SQL = "SELECT persontabel.Fornavn, dindlaeg.* FROM dindlaeg INNER JOIN persontabel ON dindlaeg.personID = persontabel.ID" %> men hvordan henter jeg så noget fra den streng... plejer jo at gøre sådan her: <% = indlaeg.Fields("overskrift")%> osv.... men jeg får følgende fejl: The connection cannot be used to perform this operation. It is either closed or invalid in this context. er jeg helt ude at flyve.. elle giver det mening???
Det kan du stadig gøre på samme måde. Hvordan ser din kode ud. Det ser ud som om recordset indlaeg ikke er åbnet eller blevet lukket før det udskrives fra det eller på anden måde bruges.
det her er toppen <% tid = Request.QueryString("tid") If Request.QueryString("Submit") = "" Then If tid = "" Then tid = "DESC" ElseIf tid = "DESC" Then tid = "ASC" Else tid = "DESC" End If End If soeg = Request.QueryString("soeg") If soeg = "" Then soegestreng = "'%'" Else soegestreng = "'%" & soeg & "%'" End If Set indlaeg = Server.CreateObject ("ADODB.Recordset") indlaeg.Open "SELECT * FROM dindlaeg WHERE dato= date() ORDER BY dato " & tid SQL = "SELECT persontabel.Fornavn, dindlaeg.* FROM dindlaeg INNER JOIN persontabel ON dindlaeg.personID = persontabel.ID" %> og hele siden bliver afsluttet med <% indlaeg.MoveNext Wend %> </td> </tr> <% session.abandon %> </table> <input type="hidden" name="tid" value="<% = tid%>"> <input type="hidden" name="id" value="<% = id%>"> </form> </body> der er 120 linier syntes at det er lige meget at lægge op her.. men hvis du vil have det så gør jeg det!
Prøv at lave disse linje: Set indlaeg = Server.CreateObject ("ADODB.Recordset") indlaeg.Open "SELECT * FROM dindlaeg WHERE dato= date() ORDER BY dato " & tid SQL = "SELECT persontabel.Fornavn, dindlaeg.* FROM dindlaeg INNER JOIN persontabel ON dindlaeg.personID = persontabel.ID" %> Om til: Set indlaeg = Server.CreateObject ("ADODB.Recordset") 'indlaeg.Open "SELECT * FROM dindlaeg WHERE dato= date() ORDER BY dato " & tid SQL = "SELECT persontabel.Fornavn, dindlaeg.* FROM dindlaeg INNER JOIN persontabel ON dindlaeg.personID = persontabel.ID" indlaeg.Open SQL, database %>
12. juli 2003 - 00:43
#10
jeg får den her fejl: Microsoft JET Database Engine error '80040e10' No value given for one or more required parameters. /dagboeger/dagbogall2.asp, line 31 linie 31 er den her - indlaeg.Open SQL, database det står sådan her!! Set indlaeg = Server.CreateObject ("ADODB.Recordset") 'indlaeg.Open "SELECT * FROM dagbogsindlaeg WHERE dato= date() ORDER BY dato " & tid SQL = "SELECT persontabel.Fornavn, dagbogsindlaeg.* FROM dagbogsindlaeg INNER JOIN persontabel ON dagbogsindlaeg.personID = persontabel.ID" indlaeg.Open SQL, database
12. juli 2003 - 00:46
#11
Fejlen betyder typisk at et kolonne nanv er forkert. Prøv at tjekke om at tabel og kolonne navne er stavet rigtigt. Jeg smutter for i aften. prøv evt denne: SQL = "SELECT * FROM dagbogsindlaeg INNER JOIN persontabel ON dagbogsindlaeg.personID = persontabel.ID" Eller hvor du har skrevet alle kolonnerne iselecten: SQL = "SELECT persontabel.Fornavn, dagbogsindlaeg.overskrift, dagbogsindlaeg.dato, dagbogsindlaeg.id FROM dagbogsindlaeg INNER JOIN persontabel ON dagbogsindlaeg.personID = persontabel.ID"
12. juli 2003 - 01:03
#12
jeg har nu dobbelt tjekket tabelnavne og PersonID er rigtig og PersonTabel er også rigtig skrevet... hvis jeg skriver det sådan her:: Set indlaeg = Server.CreateObject ("ADODB.Recordset") 'indlaeg.Open "SELECT * FROM dagbogsindlaeg WHERE dato= date() ORDER BY dato " & tid SQL = "SELECT * FROM dagbogsindlaeg INNER JOIN PersonTabel ON dagbogsindlaeg = PersonTabel.PersonID" indlaeg.Open SQL, database %> får jeg følgende fejl... Microsoft JET Database Engine error '80040e14' Join expression not supported. /dagboeger/dagbogall2.asp, line 31 Hvorfor???
13. juli 2003 - 11:45
#13
Der mangler et ID eller persionID på tabllen dagbogsindlaed: SQL = "SELECT * FROM dagbogsindlaeg INNER JOIN PersonTabel ON dagbogsindlaeg.MANGLERKOLONNEHER = PersonTabel.PersonID" Eksvis: SQL = "SELECT * FROM dagbogsindlaeg INNER JOIN PersonTabel ON dagbogsindlaeg.personID = PersonTabel.PersonID"
Kurser inden for grundlæggende programmering