Avatar billede trine_h Nybegynder
12. juni 2003 - 09:37 Der er 9 kommentarer og
2 løsninger

Spørgsmål om "1 til mange" struktur

Jeg har 2 tables med et 1 til mange forhold.
"picture" tabellen har 1 eller flere poster der peger på et produkt_id i "produkt" tabellen.
hvordan laver jeg en sql sætning + tilhørende asp script der er i stand til at udskrive 1 eller flere billeder pr. produkt?
Avatar billede fun22 Nybegynder
12. juni 2003 - 09:39 #1
sql ="SELECT * FROM tabel WHERE id = produktets id

Og så skal du jo bare i din tabel med billederne bave en kolonne der hedder f.eks. vareid og så alle billederne der hører til vareid nummer 1 skal såa have 1 i det felt.
Avatar billede jpvj Nybegynder
12. juni 2003 - 09:40 #2
SELECT * FROM pictures, produkter WHERE pictures.prodid=products.id

ASP delen er jeg ikke så stiv i, så den må en anden lige komme med...
Avatar billede trine_h Nybegynder
12. juni 2003 - 09:44 #3
jpvj - min query ser præcis sådan ud:
query = "SELECT text, piclink FROM products, pictures WHERE pictures.product_id = products.id"

problemet er bare at der altid kun vises et billede pr. produkt selv om pictures tabellen indeholder feks. 2 billeder der peger på det samme produkt...
Avatar billede fun22 Nybegynder
12. juni 2003 - 09:50 #4
Det er fordi du skal lave et loop
<%
query = "SELECT text, piclink FROM products, pictures WHERE pictures.product_id = products.id"


    Set rs = Conn.Execute(query)

    do while not rs.EOF %>
   
    <table>
      <tr>
        <td width="100%"><%=rs("piclink")%>"></td>
      </tr>
    </table>

    <%RS.MoveNext
      Loop
%>
Avatar billede trine_h Nybegynder
12. juni 2003 - 09:54 #5
Det har jeg gjort men med en while statement :
while not rs.bof or rs.eof
Response.Write(rs("text"))
Response.Write(rs("piclink"))
rs.movenext
wend
Avatar billede fun22 Nybegynder
12. juni 2003 - 10:35 #6
prøv at indsæt den kode jeg skrev, og se om det ikke virker. Du skal selvfølgelig huske din db connection...
Avatar billede trine_h Nybegynder
12. juni 2003 - 10:38 #7
fun22 - det har jeg prøvet og det ændrer desværre ikke på noget
Avatar billede fun22 Nybegynder
12. juni 2003 - 10:48 #8
kan du ikke prøve at poste hele koden til udtrækket?
Avatar billede jpvj Nybegynder
12. juni 2003 - 10:50 #9
trine_h> Det gør jo ikke mit svar forkert, at din løsning ikke virker :-)

Hvis du kører SQL2000 eller lign, kan du afvikle SQL queryet direkte - prøv at teste det først. Fortsæt herefter med din ASP kode.
Avatar billede trine_h Nybegynder
12. juni 2003 - 11:21 #10
jpvj - det løser heller ikke problemet..
Nå jeg fandt selv en løsning :
lave 2 recordsets og placere nummer 2 recordset der hvor 1 til mange forholdet er og lad den loope igennem alle billederne som er knyttet til det andet tables pågældende id.
I kan dele pointene for jeres indsats
Avatar billede jpvj Nybegynder
12. juni 2003 - 11:37 #11
trine> Det er en rigtig skidt løsning... Du får en MEGET dårligere performance  forhold til at lade et DBMS klare det...
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