18. januar 2006 - 19:10Der er
29 kommentarer og 1 løsning
Få udkast med en bestemt del af en dato
Hej allesammen
Jeg sidder og har et problem med noget hvor det skal være muligt at kunne søge på månendens nummer i en database men hvordan skal jeg hive det ud? Er det muligt at hive ud ligesom f.eks. "where tid like '%%'"???
Mine tider er skrevet ind som datatime f.eks. 2005-10-17 14:46:28
De tegn som du snakker om gør ikke noget, har prøvet at fjerne dem... Men det gode ved at skrive MONTH(tid) er at du både kan skrive 01 og bare 1. Kan du også gøre det med Date(tid, '%d-%m-%Y') = '18-01-2006'???
Ja men har siddet og kigget lidt på det... Det gidder heller ikke at virke kan ikke lige forstå det... På min side skriver jeg mit where stykke ud og det sådan ud:
where DAY(tid)=10
Så skriver den:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(tid)=10' at line 1
Min mysql linie ser sådan ud:
$hent_taeller = mysql_query("SELECT id, email, ip, date_format(tid, '%d/%m-%Y, %H:%i') as tiden from tæller $sogning order by tid desc limit $s,$pr_side");
I variablen $sogning ligger where sætningen...
Kan virkelig ikke forstå hvorfor den laver fejl...
Den SQL som fejler med "where DAY(tid)=10" er ikke nu den som du viser:
$hent_taeller = mysql_query("SELECT id, email, ip, date_format(tid, '%d/%m-%Y, %H:%i') as tiden from tæller $sogning order by tid desc limit $s,$pr_side");
Så er det nok fordi at du kaller din tabel for "tæller" - det er ikke så godt at bruge danske bogstaver i et tabel eller felt navn. Måske kan du redde det ved at omgive tabel-navnet med `-tegn, altså:
$hent_taeller = mysql_query("SELECT id, email, ip, date_format(tid, '%d/%m-%Y, %H:%i') AS tiden FROM `tæller` $sogning ORDER BY tid DESC LIMIT $s,$pr_side");
Selv om jeg skrive det helt ind i min mysql linie laver den samme fejl...
$hent_taeller = mysql_query("SELECT id, email, ip, date_format(tid, '%d/%m-%Y, %H:%i') as tiden from tæller where DAY(tid)=10 order by tid desc limit $s,$pr_side");
Prøv at udskrive SQL'en før at du forsøger at udføre den:
$sql = "SELECT id, email, ip, date_format(tid, '%d/%m-%Y, %H:%i') AS tiden FROM `tæller` $sogning ORDER BY tid DESC LIMIT $s,$pr_side"; echo "DEBUG: " . $sql . "<br>"; $hent_taeller = mysql_query($sql) or die(mysql_error());
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(tid)=18 order by tid desc limit 0,50' at line 1
Den mit webhotel køre med er version 4.1.12... Men lige meget... Kan ske det havde virket hvis jeg bare havde lagt det op på serveren og tjekket det der...
Som tak for hjælpen har jeg lige hævet point fra 30 til 60, du hang jo ved længe her... Så ligger du lige et svar?
Den nyeste version er MySQL 5.0 - 4.0.21 er i hvert fald over 1 år gammel (06 Sep 2004). Om man kan sige at det er **gammelt** er jo nok en smagssgag, men det er øjensynligt gammelt nok til at aliaset Day() (alias for DayOfMonth()) ikke er defineret der. Jeg ved faktisk ikke om den er med i 4.1.12.
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.