30. maj 2006 - 17:26
Der er
45 kommentarer og 1 løsning
Udtræk fra mysql
Jeg vil gerne kunne udtrække de 5 nyeste nyheder fra en mysql-database med asp, men jeg har et problem med at få den til at vise de 5, den viser istedet de 5 samme det skal skrives således: <a href=readnews.asp?id=xxx>Overskriften</a> (Dato)
Annonceindlæg fra Computerworld
Kom desværre til at slette den da jeg blev irriteret på den, men hvad skal du bruge ellers
Ikke noget specielt, ville bare rette fejlen i din eksisterende kode (sådan at tabel-navne, og andet, var korrekt fra starten af). <% sql = "SELECT * FROM nyheder ORDER BY id DESC LIMIT 0, 5" rs = Conn.Execute(sql) Do While Not rs.EOF Request.Write "<a href='readnews.asp?id=" & rs("id") & "'>" & rs("overskrift") & "</a> " & rs("dato") & "<br>" rs.MoveNext Loop %>
jeg har glemt hvordan jeg connecter til databasen
Måske sådan: Dim connStr, Conn connStr = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=dinDatabase;UID=ditUsername;PASSWORD=dirPassword; OPTION=3" Set Conn = Server.CreateObject("ADODB.Connection") objConn.Open(connStr)
der er et felt i mysql som skulle være dato, der står datestamp, hvordan grejer vi den???? Jeg tester lige
dette virker ikke
<% Response.ContentType = "text/vnd.wap.wml" %><?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE wml PUBLIC '-//WAPFORUM//DTD WML 1.1//EN' '
http://www.wapforum.org/DTD/wml_1.1.xml'> <wml>
<card id="nyheder" title="MIF WAP">
<p align="left">
<%
Set dbConn = Server.Createobject("ADODB.Connection")
strDSN = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql3.gullestrupnet.dk;DATABASE=mbifproject;UID=mbifproject;PWD=mbifmbif;"
dbConn.Open strDSN
sql = "Select news_id, news_subject From mbif2005_news"
rs = dbConn.Execute(sql)
Do While Not rs.EOF
%>
<a href="readnews.asp?id=<%=rs("news_id")%>"><%=rs("news_subject")%></a> (dato)<br />"
<%
rs.MoveNext
Loop
%>
</p>
<p align="center">---------------------</p>
</card>
</wml>
Hvad mener du når du siger at det ikke virker? Får du en fejl? Hvilken? Heller sker der blot noget andet end det du forventer? Hvad forventer du egentlig at der skal ske? Osv. PS: Jeg kan desværre ikke lige hjælpe dig med selve din wap-kode.
ups men selve <% Set dbConn = Server.Createobject("ADODB.Connection") strDSN = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql3.gullestrupnet.dk;DATABASE=mbifproject;UID=mbifproject;PWD=mbifmbif;" dbConn.Open strDSN sql = "Select news_id, news_subject From mbif2005_news" rs = dbConn.Execute(sql) Do While Not rs.EOF %> <a href="readnews.asp?id=<%=rs("news_id")%>"><%=rs("news_subject")%></a> (dato)<br />" <% rs.MoveNext Loop %> Virker ikke skriver at rs.EOF ikke understøttes
Det lyder nu mystisk... hvordan ser fejlbeskeden helt eksakt ud?
Fejltype: Der opstod en Microsoft VBScript-kørselsfejl (0x800A01B6) Objektet understøtter ikke denne egenskab eller metode: 'rs.EOF' /mbifphp/wap/newstest.asp, line 8
Prøv at ændre: rs = dbConn.Execute(sql) - til: Set rs = dbConn.Execute(sql)
ja det hjalp men hvad det hersens datestamp
Hvad med det? Hvad er problemet?
hvordan får jeg den til at vise den dato som datestamp tallet indeholder
Nu har jeg ikke en MySQL lige ved hånden, men har den ikke et date-type felt? Hvis det er rigtigt kan du starte med at lave dit datetime-felt om til et date-felt.
06. juni 2006 - 13:24
#17
det duer ikke at ændre da det så har indvirkning på andre ting....men hvordan er det bygget op?? datestamp i mysql med PHP
06. juni 2006 - 17:50
#18
Da det lyder som om at feltet burde have været et date-felt fra starten af, synes jeg da at du burde gøre dig selv den tjeneste at rette op på fejlen med det samme - med deraf følgende merarbejde andre steder. Min erfaring er nu at, det betaler sig i længden frem for at skulle lave mere eller mindre kunstige tilretninger i al ny kode.
Men hvis du ikke vælger denne vej, gætter jeg på at funktionen DATE() er din redning:
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html Med SQL sætningen:
SELECT Date(ditDateTimeFelt) AS dato FROM ...
burde du få dato-delen ud af feltet. "AS dato" delen betyder at du vil kunne få denne som rs("dato").
13. juni 2006 - 18:40
#19
Har du fået det til at virke?
13. juni 2006 - 20:13
#20
har desværre haft andre gøremål, men tester det i morgen
20. juni 2006 - 06:53
#21
Hmm?
20. juni 2006 - 15:34
#22
desværre hjalp det ikke men konverterede det heller ikke til datetime, det er en int felt
20. juni 2006 - 18:38
#23
Hvad mener du med at det er et int-felt? Det har da været et datetime-felt tidligere... Funktionen Date() burde trække dato-delen ud af et datetime-felt. Og hvis det ikke virker: hvad får du så egentlig af fejlbesked?
20. juni 2006 - 19:02
#24
den skriver så bare ikke nogen dato
20. juni 2006 - 19:05
#25
Hvordan ser den del af din kode ud?
20. juni 2006 - 19:34
#26
Set dbConn = Server.Createobject("ADODB.Connection") strDSN = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql3.gullestrupnet.dk;DATABASE=mbifproject;UID=mbifproject;PWD=mbifmbif;" dbConn.Open strDSN sql = "Select news_id, news_subject, news_name, Date(news_datestamp) AS datoen From mbif2005_news WHERE news_visibility = 0 ORDER BY news_id DESC LIMIT 0,5" set rs = dbConn.Execute(sql) Do While Not rs.EOF %> <%=rs("dato")%><a href="readnews.asp?id=<%=rs("news_id")%>&usr=<%=rs("news_name")%>"><%=rs("news_subject")%></a><br /> <% rs.MoveNext Loop %>
20. juni 2006 - 19:38
#27
Prøv at rette: <%=rs("dato")%> - til: <%=rs("datoen")%>
20. juni 2006 - 19:48
#28
det hjalp ikke... en værdi i feltet som viser datoen 19/6-2006 : 1150706165
20. juni 2006 - 19:50
#29
denne funktion er i koden i php: function showdate($format, $val) { global $settings; if ($format == "shortdate" || $format == "longdate" || $format == "forumdate") { return strftime($settings[$format], $val+($settings['timeoffset']*3600)); } else { return strftime($format, $val+($settings['timeoffset']*3600)); } }
20. juni 2006 - 19:52
#30
Udskriver den "1150706165" i stedet for "19/6-2006"? Så følger den godt nok ikke dokmentationen... :^|
20. juni 2006 - 20:17
#31
nej feltets værdi er 1150706165
20. juni 2006 - 20:19
#32
Hvad mener du med "nej"? Udskriver din ASP-kode "1150706165" eller "19/6-2006" på skærmen?
20. juni 2006 - 20:44
#33
ingen af delene men der hvor feltet bruges af php er der ovenstående funktion
20. juni 2006 - 20:49
#34
Hvad skriver den så ud hvis den ikke skriver en af de to muligheder?
20. juni 2006 - 20:57
#35
intet
20. juni 2006 - 20:59
#36
Hvordan ser din kode ud nu?
20. juni 2006 - 21:50
#37
for at få alt på det rene... Jeg skriver denne kode i asp til udtræk til wap fra mysql, men jeg kan se i kode hvorfra dataen stammer fra at der er ovenstående function
20. juni 2006 - 21:52
#38
Jeg tror ikke at jeg er ikke klar over hvad det er for en funktion du snakker om? Og hvordan ser din kode ud?
20. juni 2006 - 22:14
#39
function showdate($format, $val) { global $settings; if ($format == "shortdate" || $format == "longdate" || $format == "forumdate") { return strftime($settings[$format], $val+($settings['timeoffset']*3600)); } else { return strftime($format, $val+($settings['timeoffset']*3600)); } }
20. juni 2006 - 22:15
#40
min kode...den i php er ikke min, hvis det er den du mener
20. juni 2006 - 22:19
#41
Hvor kommer denne PHP kode fra og hvad er lige sammenhængen mellem den og med det problem vi har i ASP+MySQL?
20. juni 2006 - 22:43
#42
php fusion tror jeg den hedder, jeg kigger lige hvordan den laver datestampen...
21. juni 2006 - 00:46
#43
den laver int-feltets værdi med php mktime og laver unix datestamp
21. juni 2006 - 19:38
#44
Prøv med denne: sql = "SELECT news_id, news_subject, news_name, FROM_UNIXTIME(news_datestamp) AS datoen FROM mbif2005_news WHERE news_visibility = 0 ORDER BY news_id DESC LIMIT 0,5"
22. juni 2006 - 17:22
#45
Perfekt..... Nuskriver den dato + kl Lig et svar
22. juni 2006 - 17:36
#46
Svar :^)
Kurser inden for grundlæggende programmering