Du kan specificera datumet som den dag då bilden ska börja visas, då behöver du inte lägga en en bild för varje dag.
Då hämtar du bilden med:
SELECT Top 1 * From dagsbild Where dag <= Date() Order By dag desc
23 svar · 606 visningar · startad av syrolis
Tänkte mig ha visning av en bild/vecka av en samlig med 52 bilder så det räcker ett år.
Funderade på om det gick att göra om Gruvsjös dagens bild-script så det passar men är inte säker på det.
Jag har tidigare använt mig av det scriptet men det blev en massa bilder....och en massa uppdateringar (tidskrävande)
någon som har förslag till lämplig ändring?
Databasen ser ut som följande:
id(räknare) bild (sökväg inkl namn på bilden) dag (datum då bilden ska visas)
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("dagensbild/db/dagsbild.mdb")
Set RecSet = Conn.Execute("SELECT Top 1 * From dagsbild Where dag=Date() Order By id desc")%>
<table border="0" cellpadding="1" cellspacing="1">
<%If RecSet.EOF Then%>
<tr>
<td valign="top"><font size="2" face="Tahoma">Ingen bild idag!</font></td>
</tr>
<%Else%>
<tr>
<td valign="top"><img src="<%=RecSet("bild")%>" width="200"></td>
</tr>
<%End If%>
</table>
<%RecSet.Close
Set RecSet = Nothing%>
Tacksam för all hjälp
Sylvia
Du kan specificera datumet som den dag då bilden ska börja visas, då behöver du inte lägga en en bild för varje dag.
Då hämtar du bilden med:
SELECT Top 1 * From dagsbild Where dag <= Date() Order By dag desc
Det kanske skulle kunna fungera men jag skulle vilja ha ett enklare sätt.
Jag skulle vilja numrera bilderna 0.jpg, 1.jpg, 2.jpg osv och inte behöva bry mig om datum (tar tid att skriva i och ändra och uppdatera) utan de 52 bilderna bara rullar på år efter år...
Ja, då behöver du ju ingen databas alls. Det är ju bara att använda veckonumret för att skapa filnamnet.
Jo eftersom jag tänkte förtydliga namnet på den som är på bilden...
tex om bild 3.jpg visas så vill jag hämta "Syrolis Caspers Joke" och färgen "rödsilvertabby (EUR ds22)" från databasen.
Detta vet jag hur jag gör.
Men inte hur jag visar en bild/ vecka (i 52 veckor som börjar om från början over and over) i stället för en bild/ dag...
Lagra veckonumret i databasen istället då.
SELECT bild From dagsbild Where vecka = DatePart("ww", Date(), vbMonday, vbFirstFourDays)
Tänk på att vissa år har 53 veckor.
Error Type:
Microsoft VBScript compilation (0x800A03EE)
Expected ')'
/sef4/dagensbild/dagsbild.asp, line 15, column 77
= raden med SELECT
Äsch. Det ska naturligtvis vara apostrofer runt strängen:
SELECT bild From dagsbild Where vecka = DatePart('ww', Date(), vbMonday, vbFirstFourDays)
Jag får följande felmeddelande
Error Type:
Microsoft JET Database Engine (0x80040E14)
), ], eller Item saknas i frågeuttrycket 'vecka = DatePart('ww', Date(), vbMonday, vbFirstFourDays'.
/sef4/dagensbild/dagsbild.asp, line 15
på koden:
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/dagsbild.mdb")
[b]Set RecSet = Conn.Execute("SELECT bild From dagsbild Where vecka = DatePart('ww', Date(), vbMonday, vbFirstFourDays")%>[/b]
<table border="0" cellpadding="1" cellspacing="1">
<%If RecSet.EOF Then%>
<tr>
<td valign="top"><font size="2" face="Tahoma">Ingen bild idag!</font></td>
</tr>
<%Else%>
<tr>
<td valign="top"><img src="<%=RecSet("bild")%>" width="175"></td>
</tr>
<%End If%>
<tr>
<td align= center valign="top"><font size="1" face "Verdana"><%=RecSet("namn")%><br><%=RecSet("farg")%></font></td>
</tr>
</table>
<%RecSet.Close
Set RecSet = Nothing%>
Kanske har jag fel namn på kolumner i tabellen?
Det kanske fattas något där?
Jag är verkligen urdålig på det här :r
Du kan ju börja med att räkna parenteser. Det kan finnas någon sanning i felmeddelandet som säger att en ) kanske saknas. ;)
Tack @nders det har jag nu gjort och fått det rätt :)
Set RecSet = Conn.Execute("SELECT bild From dagsbild Where vecka = DatePart('ww', Date(), vbMonday, vbFirstFourDays)")%>
Men får nu felmeddelandet
Error Type:
Microsoft JET Database Engine (0x80040E10)
No value given for one or more required parameters.
/sef4/dagensbild/dagsbild.asp, line 15
Jag har nog inte rätt antal kolumner i tabellen eller fel namn på dessa.
Sett utifrån koden ovan vilka kolumner måste jag ha i tabellen?
DatePart är det veckonummret som ska lagras?
*förvirrad*
Jag kan ju ingenting om ASP utan bara klipper och klistrar...
DatePart är det veckonummret som ska lagras?
*förvirrad*
Lagrar du veckonumret i fältet vecka i tabellen? Datepart-funktionen skall i det här fallet hämta aktuellt veckonummer om det var det du undrade.
Jag kan ju ingenting om ASP utan bara klipper och klistrar...
Fast nu är det ju inte ASP som är problemet, utan SQL. ;)
Jag är tveksam om Jet SQL tycker om att du använder konstantnamnen vbMonday och vbFirstFourDays i anropet till Datepart. Prova att använda konstanternas värden (2) istället.
Set RecSet = Conn.Execute("SELECT bild From dagsbild Where vecka = DatePart('ww', Date(), 2, 2)")%>
mvh
Det verkar dock inte som att Access riktigt vill som jag vill när jag testar, så om du är sugen kan du ju alltid göra så här istället:
Set RecSet = Conn.Execute("SELECT bild From dagsbild Where vecka = " & DatePart("ww", Date, 2, 2))
Mvh
Oh... :r
Hrm...
Tja... jag måste väl fråga vidare då och erkänna min minimala kunskap :e
Nu ser koden ut så här
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/dagsbild.mdb")
[b]Set RecSet = Conn.Execute("SELECT bild From dagsbild Where vecka = DatePart('ww', Date(), 2, 2)")%>[/b]
<table border="0" cellpadding="1" cellspacing="1">
<%If RecSet.EOF Then%>
<tr>
<td valign="top"><font size="2" face="Tahoma">Ingen bild idag!</font></td>
</tr>
<%Else%>
<tr>
<td valign="top"><img src="<%=RecSet("bild")%>" width="175"></td>
</tr>
<%End If%>
<tr>
<td align= center valign="top"><font size="1" face "Verdana"><%=RecSet("namn")%><br><%=RecSet("farg")%></font></td>
</tr>
</table>
<%RecSet.Close
Set RecSet = Nothing%>
felkoden blir:
Error Type:
Microsoft JET Database Engine (0x80040E10)
No value given for one or more required parameters.
/sef4/dagensbild/dagsbild.asp, line 15
Och jag har följande i databasen
id(räknare) namn(kattens namn) farg(kattens färg) dag(datum)
allt i samma tabell
Fattas det en kolumn i så fall vilken och vad ska lagras däri?
Börjar snart misströsta... är nog för gammal för det här
:OO
Du frågar ju efter data där fältet "vecka" har ett visst värde. Har du inte fältet "vecka" i din tabell så är ju det ett problem.
Så: Lägg till kolumnen vecka i tabellen och se till att rätt värden ligger lagrade i kolumnen.
Dessutom frågar du efter fältet "bild", och det framgår inte att du har det fältet i tabellen heller?
Jag har nu lagt till vecka i tabellen.
Har skrivit i veckonumret för veckan (19) och lagt till en bild med veckonummer (20) som börjar i morgon.
Är det rätt uppfattat?
Jag glömde säga att jag visst hade bild i tabellen som innehåller sökvägen till bilden.
Men nu får jag felvärde
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/sef4/dagensbild/dagsbild.asp, line 31
och det är denna rad från scriptet ovan.
<td align= center valign="top"><font size="1" face "Verdana"><%=RecSet("namn")%><br><%=RecSet("farg")%></font></td>
Nåt är väldigt galet och det är nog SBTB (skit bakom tangentbordet) :)
Du plockar ju bara ut fältet bild från din db.
SELECT bild From dagsbild...
Lägg till de övriga fälten du vill plocka ut:
SELECT bild, farg, namn From dagsbild
Tyvärr... har lagt till farg och namn men får fortfarande samma felmeddelande...
Det måste ha något med veckonumren att göra.
Antingen har jag missuppfattat vad jag ska spara i kolumnen vecka eller också är det något annat.
HEJ!
Inte för det fel du skriver.
"Item cannot be found" räcker det att läsa, det andra krånglar till det.
Kontrollera var felet uppstår, dubbelkolla att alla RecSet... som står där finns med i sql:en.
Det kan också vara så att du inte får något recordset, om du lägger in fel siffror i databasen.
Det enklaste är att du endast lagrar veckonumret i databasen.
Testa att ta bort all datumhantering, då ska koden gå igenom, troligtvis utan bild.
Jag har modifierat databasen enligt förslaget.
Fortfarande samma felmeddelande.
Koden enligt ovan förutom att jag lade till namn och farg enligt vad solbulle föreslog.
så här ser tabellen ut
http://europenytt.no-ip.com/dagsbild.jpg
Koden kan jag inte kommentera i övrigt då jag inte kan ASP och SQL ... bara klipper och klistrar ;)