01. januar 2004 - 06:16Der er
89 kommentarer og 1 løsning
Auto visning
Hej eksperter... jeg tænkte på hvordan man gør sådan at hvis det f.eks. er den 10/12-03 så skal den osse vise alle de artikler der er sat til at skulle ind den dag. Jeg har en tabel(artikler) der indeholder en tabel som hedder (date) hvor dato er indtastet. Men på forsiden skal den vise alle de forrige artikler + dem somsagt er sat til den 10/12-03 f.eks..... Håber I forstår mit spørgsmål og kan hjælpe mig med dette...
/PS. Rigtig godt nytår til jer alle sammen,,, som skulle klikke ind på dette spørgsmål..
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
"skal den vise alle de forrige artikler + dem somsagt er sat til den 10/12-03"
Synes godt om
Slettet bruger
01. januar 2004 - 13:59#5
ja tak
Synes godt om
Slettet bruger
01. januar 2004 - 14:10#6
ja det jeg leder efter... er netop en der viser de forrige + dem som er sat til den dato (f.eks. 10/12-03)
Synes godt om
Slettet bruger
01. januar 2004 - 14:16#7
Er det muligt eller hvad? (ja er det ikk?)
Synes godt om
Slettet bruger
01. januar 2004 - 14:17#8
Avlund-> Jeg var på arbejde igår fra kl. 14 (d. 31/12-03) til kl. 04 (d. 01/01-04) så gad ikke tage til fest bagefter... var hjemme ved 4:30 tiden... :)
Synes godt om
Slettet bruger
01. januar 2004 - 14:40#9
Hmm... er der ingen der kan give mig et svar/tip eller lidt hjælp eller hvordan? I kan vel ikke alle sammen ligge og sove brænderter ud!(?) eller hva?
Synes godt om
Slettet bruger
01. januar 2004 - 16:01#10
Eriks svar burde virke. Har du prøvet?
Synes godt om
Slettet bruger
01. januar 2004 - 16:21#11
Men synes ikke jeg kan få det til at vikre helt 100% den viser ikke dem fra idag... (f.eks.)
Synes godt om
Slettet bruger
01. januar 2004 - 16:26#12
Hvordan er datoen lagret? Er det et rigtigt datofelt?
Synes godt om
Slettet bruger
01. januar 2004 - 16:41#13
hva er et rigtigt dato felt? (og hva er et forkert datofelt?)
Synes godt om
Slettet bruger
01. januar 2004 - 16:44#14
Et rigtigt datofelt er et felt, der er defineret til at indeholde en af din databases indbyggede dato-formater.
Et forkert datofelt er en CHAR, VARCHAR, TEXT eller lignende.
Synes godt om
Slettet bruger
01. januar 2004 - 16:47#15
oki... mit er forkert så fordi det kører efter text... men hvordan laver jeg det til et rigtigt?
Synes godt om
Slettet bruger
01. januar 2004 - 16:47#16
og hva skla jeg bruge det til?
Synes godt om
Slettet bruger
01. januar 2004 - 16:48#17
Vil det kunne gøre at jeg kan udfører min plan?
Synes godt om
Slettet bruger
01. januar 2004 - 16:52#18
Ja, en database har meget svært ved at lave brugbare sammeligninger på datoer, der ikke er lagret korrekt. Eriks forslag forudsætter netop at databasen kan "forstå" indholdet af datofeltet. Ellers kan den jo ikke vide, om den er før eller efter en anden dato.
Hvilken database taler vi om, og hvordan er datoen lagret nu?
Synes godt om
Slettet bruger
01. januar 2004 - 16:55#19
mysql database og dato er lagret som TEXT
Synes godt om
Slettet bruger
01. januar 2004 - 16:57#20
var det de informationer du ville vide eller..?
Synes godt om
Slettet bruger
01. januar 2004 - 17:00#21
Jeg vil også gerne vide formatet for den tekst, datoen er skrevet med. Der er jo forskel på 2003-12-24, 24-12-2003, 12-24-2003 og flere andre muligheder.
Nogle vil MySQL automatisk kunne genkende og lave om til en rigtig dato
Synes godt om
Slettet bruger
01. januar 2004 - 17:02#22
lige nu så skal man indsætte 2 slags når man opretter end da jeg ikke ved bvordan man ellers kan gøre det... men synes bedst om yyyymmdd (2003-12-24) Men lige et andet spørgsmål... kan man lave at man kun behøves at skrive den måde her: og så når den skal indsættes på siden i dansk format like this(dd/mm-yyyy?)
Synes godt om
Slettet bruger
01. januar 2004 - 17:08#23
forstår du?(Har du msn/icq?)
Synes godt om
Slettet bruger
01. januar 2004 - 17:11#24
Jo, det kan man sagtens.
20031224 eller 2003-12-24 er også den bedste måde. (De er ligefrem nemme at sortere som tekst.)
Både MySQL og PHP har ganske udmærkede funktioner til at få en dato skrevet lige som man vil have det, når bare den er lagret rigtigt. Du kan endda få den til at skrive en dato som "24. december 2003" altså på dansk. (På engelsk er månedsnavne med stort.)
Hvordan er datoen skrevet i det felt, du bruger nu?
Synes godt om
Slettet bruger
01. januar 2004 - 17:13#25
hvordan mener du?
Synes godt om
Slettet bruger
01. januar 2004 - 17:17#26
Indeholder feltet i databasen bare "10/12-03" eller har du skrevet det på en anden måde?
Synes godt om
Slettet bruger
01. januar 2004 - 17:17#27
jeg har gjordt sådan at der er 2 felter i tabel den ene er skrevet på/i dansk(format) og den anden på engelsk (format) men den engelske ser man ikke på siden... den bruger jeg kune til at sorter med... men kan du hjælpe mig med det osse...? Det skal du nok få ekstra points for...!
Synes godt om
Slettet bruger
01. januar 2004 - 17:18#28
Jeg har en på dansk(format) som er skrevet med forkorelser like this => 23. Dec og så sorter den efter engelske(format) hvor jeg har skrevet 20031223. men det der bli'r vist er kun 23. Dec(f.eks.)
Synes godt om
Slettet bruger
01. januar 2004 - 17:19#29
man ser ikke det engelske(format ting)
Synes godt om
Slettet bruger
01. januar 2004 - 17:21#30
sig til hvis du ikke forstår hva det er jeg skriver/mener
Synes godt om
Slettet bruger
01. januar 2004 - 17:24#31
OK, det lyder rigtig godt. Så kan MySQL nemlig bruge din "engelske" til at lave et nyt rigtigt datofelt til dig.
Lav en ny kolonne i din tabel, som har typen DATE. Derefter skal du køre følgende SQL:
UPDATE tabelnavn SET nytfeltnavn=engelskfeltnavn WHERE 1
Synes godt om
Slettet bruger
01. januar 2004 - 17:26#32
Bagefter, kan du slette de to gamle datokolonner. Kontroller lige først, at indholdet af den nye ser fornuftigt ud.
Synes godt om
Slettet bruger
01. januar 2004 - 17:27#33
UPDATE tabelnavn SET nytfeltnavn=engelskfeltnavn WHERE 1 Ok... hva skal jeg bytte ud med hvad? tabelnavn mit felt navn hedder lige til at starte med 2date , men hva skal jeg bytte nytfelnavn ud med og engelskfeltnavn ud med? og skal jeg først oprette et felt? Er squ lost lige her...
Synes godt om
Slettet bruger
01. januar 2004 - 17:29#34
kan vi ikke lige tage det trin for trin?
Synes godt om
Slettet bruger
01. januar 2004 - 17:30#35
Ja, lav et nyt felt. Kald det for eksempel dato
Synes godt om
Slettet bruger
01. januar 2004 - 17:32#36
ok
Synes godt om
Slettet bruger
01. januar 2004 - 17:33#37
done
Synes godt om
Slettet bruger
01. januar 2004 - 17:38#38
UPDATE tabelnavn SET dato=engelskfeltnavn WHERE 1
Dit tabelnavn og engelskfeltnavn skal rettes.
Synes godt om
Slettet bruger
01. januar 2004 - 17:41#39
ok
Synes godt om
Slettet bruger
01. januar 2004 - 17:42#40
Prøv at se på din tabel. Ser det ud til at datofeltet indeholder det rigtige? (Det burde det, men bare for at være sikker.)
Synes godt om
Slettet bruger
01. januar 2004 - 17:45#41
tabelnavn = det nuværende navn? engelskfeltnavn = et nyt navn?
Synes godt om
Slettet bruger
01. januar 2004 - 17:45#42
har prøvet alt tænkeligt... men kan squ ikke få det til at virke
Synes godt om
Slettet bruger
01. januar 2004 - 17:50#43
Jeg ved jo ikke, hvad din tabel eller felterne i den hedder. Det jeg prøver er at få lavet ændringerne i den allerede eksisterende tabel.
engeskfeltnavn skulle rettes til navnet på det felt, som indeholder datoen som 20031224 for juleaften.
tabelnavn skulle rettes til navnet på din tabel.
dato skulle være navnet på det nye felt, du lige har lavet.
Synes godt om
Slettet bruger
01. januar 2004 - 17:54#44
ok... det vil den ikke
Synes godt om
Slettet bruger
01. januar 2004 - 17:55#45
ok kan vi ikke starte helt fofra... har virkelig prøvet alt tænkeligt men virker squ ikke
Synes godt om
Slettet bruger
01. januar 2004 - 17:56#46
jeg opretter en tabel som hedder dato(type=date) og hva så?
Synes godt om
Slettet bruger
01. januar 2004 - 17:56#47
OK, vi starter forfra. Giv mig et mysql-dump af din tabelstruktur og en eller to poster fra den
Synes godt om
Slettet bruger
01. januar 2004 - 17:57#48
Du blander tabeller og felter sammen.
Synes godt om
Slettet bruger
01. januar 2004 - 17:58#49
CREATE TABLE film_kalender ( id int(11) NOT NULL auto_increment, title text NOT NULL, dato text NOT NULL, datoid text NOT NULL, madeby text NOT NULL, date text NOT NULL, date2 date NOT NULL default '0000-00-00', PRIMARY KEY (id) ) TYPE=MyISAM;
# # Data dump for tabellen `film_kalender` #
INSERT INTO film_kalender VALUES (1, 'Kill Bill - vol.1', '02. Okt', '20031002', '', '', '0000-00-00'); INSERT INTO film_kalender VALUES (2, 'Intolerable Cruelty', '24. Okt.', '20031024', '', '', '0000-00-00');
Synes godt om
Slettet bruger
01. januar 2004 - 18:00#50
og i den fil som printer den, printer den title og dato og sorter dem efter datoid( = den engelske dato - format)
Synes godt om
Slettet bruger
01. januar 2004 - 18:02#51
OK, så kører du dette:
UPDATE film_kalender SET `date2`=datoid WHERE 1
Synes godt om
Slettet bruger
01. januar 2004 - 18:02#52
ok
Synes godt om
Slettet bruger
01. januar 2004 - 18:03#53
done... hva sker der så?
Synes godt om
Slettet bruger
01. januar 2004 - 18:04#54
ok jeg akn godt se hvad der skete...
Synes godt om
Slettet bruger
01. januar 2004 - 18:05#55
hmm... hvis jeg fik blandet tabeller og felter sammen tror jeg da pokker det var et helvede
Synes godt om
Slettet bruger
01. januar 2004 - 18:07#56
men hvordan gør jeg så at den printer på den dansk måde ud fra den engelske måde?
Synes godt om
Slettet bruger
01. januar 2004 - 18:07#57
En tabel er for eksempel film_kalender, den består så af felter. Og ja, hvis man ikke lige har styr på begreberne, kan man blive vildt forvirret meget hurtigt.
Nu kan du roligt slette de gamle dato-felter. De skal ikke bruges mere.
Synes godt om
Slettet bruger
01. januar 2004 - 18:09#58
ok
Synes godt om
Slettet bruger
01. januar 2004 - 18:11#59
så er de andre slettet
Synes godt om
Slettet bruger
01. januar 2004 - 18:13#60
men hvordan gør jeg så at den skriver den på den danske måde?
Synes godt om
Slettet bruger
01. januar 2004 - 18:14#61
altså på sitet
Synes godt om
Slettet bruger
01. januar 2004 - 18:19#62
er du der?
Synes godt om
Slettet bruger
01. januar 2004 - 18:26#63
Så skal du bruge følgende SQL:
SELECT title, UNIX_TIMESTAMP(`date2`) as dato from film_kalender where `date2`<=now()
I din PHP kan du så bruge dette:
setlocale(LC_ALL, "da_DK"); // Denne linie skal være i starten af dit script
echo strftime("%d. %b", $row['dato']);
Synes godt om
Slettet bruger
01. januar 2004 - 18:28#64
i starten af hele filen... eller?
Synes godt om
Slettet bruger
01. januar 2004 - 18:31#65
Den første linie skal være i starten - eller bare før du udskriver datoen.
Den anden skal være der, hvor du vil udskrive datoen.
Synes godt om
Slettet bruger
01. januar 2004 - 18:37#66
hmmm... kan ikke få den til at vise datoen... :( Den kan godt hente title... men ikke datoen
Synes godt om
Slettet bruger
01. januar 2004 - 18:37#67
og row skal naturligvis rettes til den variabel du henter data ind i.
Synes godt om
Slettet bruger
01. januar 2004 - 18:37#68
kan du ikke prøve at lave en fil(meget simpelt),.... hvor den henter title + datoen... ? og ligge den op her...?
Synes godt om
Slettet bruger
01. januar 2004 - 18:40#69
henter data ind i?
Synes godt om
Slettet bruger
01. januar 2004 - 18:41#70
kan du forklare det lidt nærmerer?
Synes godt om
Slettet bruger
01. januar 2004 - 18:41#71
nu virker det squ
Synes godt om
Slettet bruger
01. januar 2004 - 18:42#72
kom lige til at tænke på en ting jeg synes jeg manglede... og det var <? + ?> omkring echo strftime("%d. %b", $row['dato']); lol
Synes godt om
Slettet bruger
01. januar 2004 - 18:43#73
<?php
header("Content-Type: text/plain");
setlocale(LC_ALL, "da_DK");
// indsæt kode til at åbne forbindelse til MySQL her.
$resultat=mysql_query("SELECT title, UNIX_TIMESTAMP(`date2`) as dato from film_kalender where `date2`<=now()") or die(mysql_error());
// indsæt kode til at åbne forbindelse til MySQL her.
$resultat=mysql_query("SELECT UNIX_TIMESTAMP(`date2`) as dato from film_kalender where `date2`<=now()") or die(mysql_error());
while ($row=mysql_fetch_assoc($resultat)){ echo strftime("%d. %b", $row['dato']) . "\n"; }
?>
Hvis du vil have den som en del af en almindelig fil, der skriver html-koder også, skal du forresten fjerne linien med header("Content-Type: text/plain");
Synes godt om
Slettet bruger
03. januar 2004 - 18:28#88
kan man osse få den til at skrive årstal f.eks. 04 og f.eks. 2004 gider du at skrive begge 2 hvis du kan..?
Synes godt om
Slettet bruger
03. januar 2004 - 18:56#89
Ja. Man kan få den til at skrive rundt regnet enhver oplysning om datoen, som man kan finde på, inklusiv et par stykker, som jeg ikke aner, hvad man skal bruge til.
echo strftime("%G/%V - %A", $row['dato']) . "\n"; // 2004/01 - lørdag // Denne er lidt speciel: I tirsdags ville den have skrevet // 2004/01 - tirsdag // fordi den dag hørte til uge 1 i 2004
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.