Avatar billede MrGold Nybegynder
27. marts 2010 - 20:27 Der er 7 kommentarer og
1 løsning

Udskrive 10 nyeste poster som har uploadet billede, fra database

Har lidt problemer med at få dette til at fungere.

Jeg vil ha' min side til at udskrive de 10 nyeste billede profiler fra min database.

Det er sådan, at når man opretter en profil bliver disse oplysninger gemt i databasen: UserID (auto), profil (brugernavnet man har valgt), kode, profil_billede (her får man automatisk tildelt et standard billede; Hvis mand: "Images/Man.jpg" Og kvinde: "Images/Woman.jpg"

Det jeg vil have den til at udskrive er så de profiler som er nyest + har uploadet deres eget billede. dvs. det må ikke være de nyeste profiler, som bare har deres standard-billede.

Jeg har selv prøvet at lave en kode sådan:
------------------------------------------------

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN


strSQL = "select * from bruger ORDER BY UserID DESC LIMIT 10 & profil_billede is not "Images/Man.jpg" or "Images/Woman.jpg
Set rs = Conn.Execute(strSQL)

-----------------------------------------------------

Havde forestillet mig noget lignende ovenstående.. men kan ikke finde ud af at formulere sætningen rigtigt. Heller ikke selve response.write-sætningen der skal vise de ti billeder.

%>
Avatar billede arne_v Ekspert
27. marts 2010 - 21:21 #1
SELECT *
FROM bruger
WHERE profilbillede NOT IN ('Images/Man.jpg', 'Images/Woman.jpg')
ORDER BY userid DESC
LIMIT 10
27. marts 2010 - 21:50 #2
De brugere der selv har oprettet deres egne billeder faar du ved den foelgende query:

SELECT * FROM mrgold WHERE profil_billede != "images/Man.jpg" AND profil_billede != "images/Woman.jpg"

Men du vil have de ti nyeste.  Hvordan ved du (og hvordan ved tabellen) hvor gammel en profil er?  Hvad staar der i feltet 'kode'?  En datetime?  Hvis ikke saa synes det mig at du mangler et felt der giver den oplysning.
27. marts 2010 - 21:54 #3
Ups, arne_v havde sendt et indlaeg mens jeg udarbejdede og testede mit indlaeg.  Jeg er enig i at arne_v's "WHERE profilbillede NOT IN ('Images/Man.jpg', 'Images/Woman.jpg')" er smartere end mit "WHERE profil_billede != "images/Man.jpg" AND profil_billede != "images/Woman.jpg"".  Men jeg staar ved at du synes at mangle kriteria for hvilke brugerprofiler er de nyeste.
Avatar billede arne_v Ekspert
27. marts 2010 - 22:02 #4
Jeg antager at:
  ORDER BY UserID DESC
finde de nyeste brugere.
Avatar billede MrGold Nybegynder
27. marts 2010 - 22:35 #5
Har lavet den følgende:
---------------------------
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN


strSQL = "Select * From bruger Where profil_billede NOT IN ('images/man.jpg','images/woman.jpg') order by UserID DESC LIMIT 2"

Set rs = Conn.Execute(strSQL)

%>
-----------------------------------------

og får fejlen: Microsoft OLE DB Provider for ODBC Drivers fejl '80040e14'

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i ORDER BY-delsætningen.

/meyo/test.asp, linje 12
Avatar billede arne_v Ekspert
27. marts 2010 - 22:43 #6
SELECT TOP 10 *
FROM bruger
WHERE profilbillede NOT IN ('Images/Man.jpg', 'Images/Woman.jpg')
ORDER BY userid DESC

(LIMIT er MySQL !)
Avatar billede MrGold Nybegynder
27. marts 2010 - 22:44 #7
Arh, perfekt :) smid gerne et svar.
Avatar billede arne_v Ekspert
27. marts 2010 - 22:55 #8
svar
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