webForumDet fria alternativet

Få ut länkar till en artikel

Databaser & SQL

2 svar · 192 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#1

Hej,

Jag har en artikelfunktion som skriver ut artiklar med information enligt den bifogade bilden. Som man kan se till höger i bilden har jag en sektion där jag visar aktuella länkar som hör till en artikel.

Jag har kommit så långt att jag tillsammans med en artikel kan få ut 1 länk för respektive artikel. Nu kan det ju faktiskt vara så att en artikel har fler länkar. Hur bär jag mig åt för att i en och samma sql-sats dels få ut informationen rörande artikeln med samtidigt plocka ut multipla länkar? Helt klart visar MySQL att det blir fel i resultatet eftersom den sub-fråga genererar mer än en post.

Felmeddelande:

Warning: mysql_query() [function.mysql-query]: Unable to save result set in c:\sökväg.php on line 180
Subquery returns more than 1 row

Någon smidig lösning på detta? :) :stud

Min SQL-fråga ser ut som följer:

"SELECT date_time, headline, content, firstname, lastname, tblMember.memberID, tblMember.username,"
."(SELECT t1.address FROM tblLinks AS t1, tblArticleLinks AS t2 WHERE t2.articleID = $ID AND t1.linkID = t2.linkID) AS linkaddress"
.", (SELECT t1.name FROM tblLinks AS t1, tblArticleLinks AS t2 WHERE t2.articleID = $ID AND t1.linkID = t2.linkID) AS linkname".
"FROM tblMember , tblArticle WHERE tblMember.memberID = tblArticle.memberID AND articleID = $ID"

De tabeller jag har enkelt beskrivet är:

tblArticle
=================
articleID

tblArticleLinks (många-till-många-förhållande)
=================
*articleID
*linkID

tblLinks
=================
linkID

article.jpg
Medlem sedan juli 20011 084 inlägg
#2

Varför måste du ha allt i en fråga? Enklare hade ju varit 2 frågor(då sliper du en stor/avancerad)

"SELECT date_time, headline, content, firstname, lastname, tblMember.memberID, tblMember.username 
FROM tblArticle INNER JOIN tblMember ON tblMember.memberID = tblArticle.memberID 
WHERE articleID = $ID"

"SELECT t2.linkID,t1.address,t1.name 
FROM tblArticleLinks t2 INNER JOIN tblLinks t1 ON t1.linkID = t2.linkID 
WHERE t2.articleID = $ID"

PS. Skriver direkt ur huvudet, så reservation för att jag skrivit fel ;) :birp

Medlem sedan apr. 20041 597 inlägg
#3

Det var väl jag som tänkte att det skulle gå att lösa på ett supersmart och svårt sätt bara :e

Dina förslag är ju klart godkända!

252 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)