vad betyder detta
Microsoft OLE DB Provider for ODBC Drivers error '80040e31'
[MySQL][ODBC 3.51 Driver][mysqld-4.0.25-max]Column: 'kommentar' in field list is ambiguous
/Gallery/viewComment.asp, line 14
rad 1 är första raden
Set kommentarRS=objConn.Execute("SELECT DISTINCT username, vemKollar, anvandare, bild, rubrik, inlagd, kommentar, nytt, Postad, bildID, picture "&_
"FROM tblUsers INNER JOIN tblUsers_Galleri_kommentar INNER JOIN tblUsers_Galleri ON tblUsers_Galleri_kommentar.bildID = tblUsers_Galleri.bildID AND tblUsers_Galleri_kommentar.agare = tblUsers_Galleri.agare ON tblUsers.userID = tblUsers_Galleri_kommentar.vemKollar "&_
"GROUP BY username, vemKollar, anvandare, bild, rubrik, inlagd, tblUsers_Galleri_kommentar.Kommentar, nytt, Postad, bildID, picture, anvandare, rubrik, bild, agare, rubrik "&_
"HAVING tblUsers_Galleri_kommentar.bildID="& ID &" AND tblUsers_Galleri_kommentar.agare="& uid &" ORDER BY Postad DESC")
LarsGMedlem sedan dec. 200012 464 inlägg Att kolumnen kommentar finns definierad i mer än en av de tabeller som förekommer i fromklausulen. Du får kvalificera kolumnnamnet med lämpligt tabellnamn.
med tblusers_galleri_kommentar.Kommentar får jag detta
Microsoft OLE DB Provider for ODBC Drivers error '80040e31'
[MySQL][ODBC 3.51 Driver][mysqld-4.0.25-max]Unknown table 'tblusers_galleri_kommentar' in field list
/Gallery/viewComment.asp, line 14
gick ju utmärkt med access med den koden.....med denna lilla ändring förstås...
och sen har jag ytterligare en fråga när det gäller galleriet. Med denna kod kan jag se raden när jag kör sql-en i MySQL
Set bildRS=objConn.Execute("SELECT userID, username, agare, bildID, inlagd "&_
"FROM tblUsers INNER JOIN tblUsers_Galleri ON tblUsers.userID = tblUsers_Galleri.agare order by inlagd desc limit 4")
men när jag ska visa den på sidan så syns ingenting
<span class="rubrik_s">Senaste 4 inlagda i galleriet:</span><hr>
<%if bildRS.eof then
response.write "<span class=""presentation1"">Inga bilder finns inlagda</span><br>"
do until bildRS.EOF%>
<table border="0" width="231">
<tr>
<td align="left" width="95">
<a class="menu" href="/Gallery/?userID=<%=bildRS("userID")%>&usr=<%=bildRS("username")%>"><b><%=bildRS("username")%></b></a>
</td>
<td align="left" width="126" class="presentation">
<%=right(replace(bildRS("inlagd"),"-",""),15)%>
</td>
</tr>
</table>
<%bildRS.MoveNext: Loop
end if%>
även här funkade det utmärkt i access
LarsGMedlem sedan dec. 200012 464 inlägg Jag har tittat lite närmare på din fråga. Det är väldigt sällan man behöver både distinct och group by och i ditt fall tror jag att bådadera är onödiga. Det behövs heller ingen having då den typen av villkor skall anges i where. Sen så är dina joinuttryck konstiga,det är lättare att se om man skriver
from a join b on ...
join c on ...
Jag skulle skriva din fråga som
SELECT
username,
vemKollar,
anvandare,
bild,
rubrik,
inlagd,
kommentar,
nytt,
Postad,
bildID,
picture
FROM tblUsers u
INNER JOIN tblUsers_Galleri_kommentar gk ON
u.userID = gk.vemKollar
inner join tblUsers_galleri g on
gk.bildID = g.bildID
and gk.agare = g
where gk.bildID= & ID
AND gk.agare= & uid &
ORDER BY Postad DESC
och sedan så skulle jag kvalificera alla kolumner i select-listan. (Jag ger mig inte på det då jag inte vet något om dina tabelldefinitioner.)
<%if bildRS.eof then
response.write "<span class=""presentation1"">Inga bilder finns inlagda</span><br>"
do until bildRS.EOF%>
Jag förstår inte hur det kan ha fungerat med Access.
<%if bildRS.eof then
response.write "<span class=""presentation1"">Inga bilder finns inlagda</span><br>"
else
do until bildRS.EOF%>
tillbaka på samma fel som tidigare
Microsoft OLE DB Provider for ODBC Drivers error '80040e31'
[MySQL][ODBC 3.51 Driver][mysqld-4.0.25-max]Unknown table 'tblUsers_galleri_kommentarer' in field list
/Gallery/viewComment.asp, line 14
Set kommentarRS=objConn.Execute("SELECT username, vemKollar, anvandare, bild, rubrik, inlagd, tblUsers_galleri_kommentarer.kommentar, nytt, Postad, bildID, picture FROM tblUsers u INNER JOIN tblUsers_Galleri_kommentar gk ON u.userID = gk.vemKollar inner join tblUsers_galleri g on gk.bildID = g.bildID and gk.agare = g where gk.bildID="& ID &" AND gk.agare="& uid &" ORDER BY Postad DESC")
/red kommentarer var kommentar men samma fel
aasahMedlem sedan mars 20034 471 inlägg I din select-sats plockar du ut 'kommentar'. Precis som LarsG tidigare skrev måste det kolumnnamnet förekomma i minst två av de tabeller du joinar. Du måste alltså tala om vilken du vill ha ut.
Nu är det tblUsers som den klagar på och det är enbart username som ska plockas ur den tabellen
Microsoft OLE DB Provider for ODBC Drivers error '80040e31'
[MySQL][ODBC 3.51 Driver][mysqld-4.0.25-max]Unknown table 'tblUsers' in field list
/Gallery/viewComment.asp, line 15
Set kommentarRS=objConn.Execute("SELECT tblUsers.username, tblUsers_Galleri_kommentar.vemKollar, "&_
"tblUsers_Galleri_kommentar.anvandare, tblUsers_Galleri_kommentar.bild, "&_
"tblUsers_Galleri_kommentar.rubrik, tblUsers_Galleri_kommentar.inlagd, "&_
"tblUsers_Galleri_kommentar.Kommentar, tblUsers_Galleri_kommentar.nytt, "&_
"tblUsers_Galleri_kommentar.Postad, tblUsers_Galleri_kommentar.bildID, tblUsers.picture "&_
"FROM tblUsers u "&_
"INNER JOIN tblUsers_Galleri_kommentar gk ON u.userID = gk.vemKollar "&_
"INNER JOIN tblUsers_galleri g on gk.bildID = g.bildID and gk.agare = g "&_
"WHERE gk.bildID="& ID &" AND gk.agare="& uid &" ORDER BY Postad DESC")
@ndersMedlem sedan juni 200032 969 inlägg Du har ju gett tblUsers aliaset u. Då får du använda det också.
nu har jag crosscheckat båda galleritabellerna och det verkarstämma men jag får ändå
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-4.0.25-max]Unknown column 'g' in 'on clause'
/Gallery/viewComment.asp, line 15
SELECT u.username, gk.vemKollar, gk.anvandare, g.bild, "&_
"g.rubrik, g.inlagd, gk.Kommentar, gk.nytt, gk.Postad, gk.bildID, u.picture "&_
"FROM tblUsers u "&_
"INNER JOIN tblUsers_Galleri_kommentar gk ON u.userID = gk.vemKollar "&_
"INNER JOIN tblUsers_galleri g on gk.bildID = g.bildID and gk.agare = g "&_
"WHERE gk.bildID="& ID &" AND gk.agare="& uid &" ORDER BY gk.Postad DESC
tabell gk
bildID int(11) Ja 0
vemKollar int(11) Ja 0
anvandare char(50) Ja NULL
agare int(11) Ja 0
Kommentar char(255) Ja NULL
Postad datetime Ja NULL
nytt tinyint(1) Ja NULL
tabell g
bildID int(11) Nej auto_increment
agare int(11) Ja 0
bild varchar(50) Ja NULL
inlagd datetime Ja NULL
rubrik varchar(50) Ja NULL
kommentar longtext Ja NULL
clicks varchar(50) Ja 0
ps: säg till om jag är jobbig :-)
@ndersMedlem sedan juni 200032 969 inlägg Läs igen.
"INNER JOIN tblUsers_galleri g on gk.bildID = g.bildID
and gk.agare = g[b]<HÄR SAKNAS NÅGOT>[/b] "&_
@nders skrev:
Läs igen.
"INNER JOIN tblUsers_galleri g on gk.bildID = g.bildID
and gk.agare = g[b]<HÄR SAKNAS NÅGOT>[/b] "&_
men det var ju så jag såg att du skrev
inner join tblUsers_galleri g on
gk.bildID = g.bildID
and gk.agare = g
where gk.bildID= & ID
@ndersMedlem sedan juni 200032 969 inlägg Va?
Det enda jag säger är att när du hänvisar till ett fält så måste du ange tabellens alias istället för tabellnamnet, om du har gett tabellen ett alias. g är ett tabellalias, inte ett fältnamn som du försöker säga att det är.
@nders skrev:
Va?
Det enda jag säger är att när du hänvisar till ett fält så måste du ange tabellens alias istället för tabellnamnet, om du har gett tabellen ett alias. g är ett tabellalias, inte ett fältnamn som du försöker säga att det är.
Förlåt mig @nders, det var LarsG som skrev *skäms*
@ndersMedlem sedan juni 200032 969 inlägg Ok, det saknas i alla fall något där, som LarsG missade, så du får fylla i det.
det funkar nu
Set kommentarRS=objConn.Execute("SELECT u.username, gk.vemKollar, gk.anvandare, g.bild, "&_
"g.rubrik, g.inlagd, gk.Kommentar, gk.nytt, gk.Postad, gk.bildID, u.picture "&_
"FROM tblUsers u "&_
"INNER JOIN tblUsers_Galleri_kommentar gk ON u.userID = gk.vemKollar "&_
"INNER JOIN tblUsers_galleri g on gk.bildID = g.bildID and gk.agare = g.agare "&_
"WHERE gk.bildID="& ID &" AND gk.agare="& uid &" ORDER BY gk.Postad DESC")
LarsGMedlem sedan dec. 200012 464 inlägg Det var nog nedanstående jag tänkte skriva
and gk.agare = g.agare
LarsG skrev:
Det var nog nedanstående jag tänkte skriva
and gk.agare = g.agare
Tack för all hjälp trots att jag kanske var lite jobbig :-)