12. oktober 2005 - 20:51
Der er
23 kommentarer og 2 løsninger
kæde værdier sammen fra mysql
Hej. Jeg har 1 database i mysql med 2 tabeller. En "user" tabel med information om brugerne i felterne: ID username userfirst userlast description og en "filer" tabel med billeder med felterne: ID bill_sti descr name dimension type size userid (som er det samme som ID under user tabellen). Når jeg henter en liste over mine billeder i php, vil jeg gerne have et output af Brugerens navn (userfirst . userlast) - disse skal hentes via "userid" ved hvert billede og hente det tilsvarende navn for brugeren i "user" tabellen. Kan dette lade sig gøre?? Håber mit spørgsmål er korrekt formuleret.
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?
12. oktober 2005 - 20:57
#1
Følgende SQL burde kunne gøre det: SELECT * FROM user AS u, filer AS f WHERE f.userid=u.id
12. oktober 2005 - 20:58
#2
Du kunne jo lave 2 udtræk! Et udtræk fra user-tabellen, og gemmer det. Så laver du et udtræk af alle billeder knyttet til en bruger. Så printer du de data du fik før. Du kan også lave det i en SQL: SELECT * FROM user INNER JOIN filer ON user.id = filer.userid WHERE user.id = 1 1 er det id du søger...
12. oktober 2005 - 21:00
#3
Ok.. her er koden jeg gerne vil have det ind i.. Sådan at den sammen med hvert billede viser navnet i stedet for userid... while($row_user = mysql_fetch_array($resultat_user)){ $id_user = $row_user["id"]; $name_user = '$row_user["userfirst"] .$row_user["userlast"]'; } while($row = mysql_fetch_array($resultat)){ $id = $row["userid"]; <---- Det er denne jeg gerne vil have lavet om.. $name = $row["name"]; $descr = $row["descr"]; $type = $row["type"]; $dimension = $row["dimension"]; $image_dir = $row["bill_sti"];
12. oktober 2005 - 21:02
#4
vrøvl... $sql = "SELECT * FROM filer order by userid"; $sql_user = "select id, userfirst, userlast from user"; $resultat = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_array($resultat)){ // do some thing here //$size = $row["size"]; $id = $row["userid"]; $name = $row["name"]; $descr = $row["descr"]; $type = $row["type"]; $dimension = $row["dimension"]; $image_dir = $row["bill_sti"]; sådan ser det ud..
12. oktober 2005 - 21:03
#5
Er der altid et billede pr. bruger? Kan der være mere end et billede pr. bruger?
12. oktober 2005 - 21:05
#6
Der er flere billeder pr. bruger... det var derfor jeg lavede order by userid - men det skal jo så være order by userfirst - eller noget i den stil..
12. oktober 2005 - 21:06
#7
Men er der altid et billede som nielle spørger?
12. oktober 2005 - 21:08
#8
Ja, der er altid minimum 1 billede pr. bruger. Det er når de uploader billedet, at de bliver registreret i databasen..
12. oktober 2005 - 21:10
#9
Men vil du vise billeder for en bruger, f.eks. brugeren med id = 1. Eller vil du vise samtlige billeder og hvem som så er ejer af det billede?
12. oktober 2005 - 21:12
#10
Jeg skal sådan set bruge begge dele - men dette spørgsmål var nu mere ment til listen over alle billeder.
12. oktober 2005 - 21:17
#11
Test dette: $sql = " SELECT u.userfirst, u.userlast, f.* FROM user AS u INNER JOIN filer AS f ON u.id = f.userid ORDER BY userid"; $resultat = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_array($resultat)) { // do some thing here //$size = $row["size"]; $id = $row["userid"]; $name = $row["name"]; $descr = $row["descr"]; $type = $row["type"]; $dimension = $row["dimension"]; $image_dir = $row["bill_sti"]; Du afslutter selv koden antager jeg, hvor du også printer noget til browseren! Når du så vil have det på en specifik bruger, tilføjer du "bare" WHERE u.id = 1 Mellem: ON u.id = f.userid WHERE u.id = 1 ORDER BY userid";
12. oktober 2005 - 21:18
#12
Jeg ville lave noget i denne stil: $sql1 = "SELECT * FROM user ORDER BY userlast ASC, userfirst ASC"; $query1 = mysql_query($sql1) or die(mysql_error()); while ($row1 = mysql_fetch_assoc($query1)) { $userid = $row1["id"]; $username = $row1["username"]; // ... og resten $sql2 = "SELECT * FROM filer WHERE userid=" . $userid; $query2 = mysql_query($sql2) or die(mysql_error()); while ($row2 = mysql_fetch_assoc($query2)) { $bill_sti = $row2["bill_sti"]; $bill_name = $row2["name"]; } }
12. oktober 2005 - 21:19
#13
Nu fik jeg den til at skrive fornavnet ud på billederne - men den finder ikke userlast: aabn_forbindelse_og_vaelgdb(); $sql = "SELECT * FROM user AS u, filer AS f WHERE f.userid=u.id"; $resultat = mysql_query($sql) or die(mysql_error()); luk_forbindelse(); while($row = mysql_fetch_array($resultat)){ $firstname = $row["userfirst"]; $lastname = $row["userlast"]; $id = $row["userid"]; $name = $row["name"]; $descr = $row["descr"]; $type = $row["type"]; $dimension = $row["dimension"]; $image_dir = $row["bill_sti"]; print "Kunstner : $firstname <br />"; print "Efternavn : $userlast <br />"; print "Navn : $name <br />"; print "Description : $descr <br />"; print "Type : $type<br />"; print "Billedets mål : $dimension <br />"; print "image is <img src='../upload".$image_dir."/tn_".$name."'> <br /><br />"; }
12. oktober 2005 - 21:21
#14
print "Efternavn : $lastname <br />";
12. oktober 2005 - 21:24
#15
Doh... har ikke styr på hvad jeg selv kalder mine variabler... haha.. tak for hjælpen!!! vil i dele point - kan bruge begge svar! :-D
12. oktober 2005 - 21:25
#16
Svar :^)
12. oktober 2005 - 21:28
#17
Lige en hurtig.. hvordan får jeg billedet til at blive et link i min print "image is <img src='../upload".$image_dir."/tn_".$name."'> <br /><br />";
12. oktober 2005 - 21:29
#18
Svar! Nielle: Er der en grund til du ikke bruger join? Er det ikke pænest at bruge join og ikke select * from tabel1, tabel2 eller flere sql'er?
12. oktober 2005 - 21:30
#19
print "image is <a href='../upload".$image_dir."/tn_".$name."'>$name</a> <br /><br />";
12. oktober 2005 - 21:32
#20
Hov - nu viser den ikke selve billedet, men bare et "link" til billedet.. selve billedet skulle gerne være et link - undskyld at jeg bruger dette emne..
12. oktober 2005 - 21:34
#21
Hvis du viser hele billedet, hvad skal det så linke til? Så ville det vel være smartest at have et thumbnail, eller det har du måske allerede?
12. oktober 2005 - 21:35
#22
Men sådan uden noget thumb, så er der link til samme pic som allerede vises. print "image is <a href='../upload".$image_dir."/tn_".$name."'><img src='../upload".$image_dir."/tn_".$name."'></a> <br /><br />"; Og takker for point!
12. oktober 2005 - 21:35
#23
Jeps.. src='../upload".$image_dir."/tn_".$name tn_".$name tn_ er "fornavnet til mine thumbnails" som laves automatisk.. så linket skal være til src='../upload".$image_dir."/".$name
12. oktober 2005 - 21:37
#24
Det virker.. 1000 tak!
13. oktober 2005 - 08:10
#25
Selv tak!
Vi tilbyder markedets bedste kurser inden for webudvikling