Avatar billede Slettet bruger
01. januar 2004 - 06:16 Der 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..
Avatar billede avlund Nybegynder
01. januar 2004 - 07:23 #1
Det er nytårsmorgen, mand! Du burde være alle andre steder end her... :)
Avatar billede erikjacobsen Ekspert
01. januar 2004 - 11:22 #2
Du kan formentlig

  select * from dintabel where dindato<=now()

dintabel, dindato udskifter du bare med dine navne.
Avatar billede Slettet bruger
01. januar 2004 - 13:42 #3
Men den er func. beholder den osse de andre artikler, som er skrevet i forvejen på forsiden?
Avatar billede erikjacobsen Ekspert
01. januar 2004 - 13:44 #4
Er det ikke også det du beder om

"skal den vise alle de forrige artikler + dem somsagt er sat til den 10/12-03"
Avatar billede Slettet bruger
01. januar 2004 - 13:59 #5
ja tak
Avatar billede 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)
Avatar billede Slettet bruger
01. januar 2004 - 14:16 #7
Er det muligt eller hvad? (ja er det ikk?)
Avatar billede 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... :)
Avatar billede 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?
Avatar billede Slettet bruger
01. januar 2004 - 16:01 #10
Eriks svar burde virke. Har du prøvet?
Avatar billede 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.)
Avatar billede Slettet bruger
01. januar 2004 - 16:26 #12
Hvordan er datoen lagret? Er det et rigtigt datofelt?
Avatar billede Slettet bruger
01. januar 2004 - 16:41 #13
hva er et rigtigt dato felt? (og hva er et forkert datofelt?)
Avatar billede 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.
Avatar billede 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?
Avatar billede Slettet bruger
01. januar 2004 - 16:47 #16
og hva skla jeg bruge det til?
Avatar billede Slettet bruger
01. januar 2004 - 16:48 #17
Vil det kunne gøre at jeg kan udfører min plan?
Avatar billede 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?
Avatar billede Slettet bruger
01. januar 2004 - 16:55 #19
mysql database og dato er lagret som TEXT
Avatar billede Slettet bruger
01. januar 2004 - 16:57 #20
var det de informationer du ville vide eller..?
Avatar billede 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
Avatar billede 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?)
Avatar billede Slettet bruger
01. januar 2004 - 17:08 #23
forstår du?(Har du msn/icq?)
Avatar billede 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?
Avatar billede Slettet bruger
01. januar 2004 - 17:13 #25
hvordan mener du?
Avatar billede 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?
Avatar billede 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...!
Avatar billede 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.)
Avatar billede Slettet bruger
01. januar 2004 - 17:19 #29
man ser ikke det engelske(format ting)
Avatar billede Slettet bruger
01. januar 2004 - 17:21 #30
sig til hvis du ikke forstår hva det er jeg skriver/mener
Avatar billede 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
Avatar billede 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.
Avatar billede 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...
Avatar billede Slettet bruger
01. januar 2004 - 17:29 #34
kan vi ikke lige tage det trin for trin?
Avatar billede Slettet bruger
01. januar 2004 - 17:30 #35
Ja, lav et nyt felt. Kald det for eksempel dato
Avatar billede Slettet bruger
01. januar 2004 - 17:32 #36
ok
Avatar billede Slettet bruger
01. januar 2004 - 17:33 #37
done
Avatar billede Slettet bruger
01. januar 2004 - 17:38 #38
UPDATE tabelnavn SET dato=engelskfeltnavn WHERE 1

Dit tabelnavn og engelskfeltnavn skal rettes.
Avatar billede Slettet bruger
01. januar 2004 - 17:41 #39
ok
Avatar billede 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.)
Avatar billede Slettet bruger
01. januar 2004 - 17:45 #41
tabelnavn = det nuværende navn?
engelskfeltnavn = et  nyt navn?
Avatar billede Slettet bruger
01. januar 2004 - 17:45 #42
har prøvet alt tænkeligt... men kan squ ikke få det til at virke
Avatar billede 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.
Avatar billede Slettet bruger
01. januar 2004 - 17:54 #44
ok... det vil den ikke
Avatar billede 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
Avatar billede Slettet bruger
01. januar 2004 - 17:56 #46
jeg opretter en  tabel som hedder dato(type=date)
og hva så?
Avatar billede 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
Avatar billede Slettet bruger
01. januar 2004 - 17:57 #48
Du blander tabeller og felter sammen.
Avatar billede 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');
Avatar billede 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)
Avatar billede Slettet bruger
01. januar 2004 - 18:02 #51
OK, så kører du dette:

UPDATE film_kalender SET `date2`=datoid WHERE 1
Avatar billede Slettet bruger
01. januar 2004 - 18:02 #52
ok
Avatar billede Slettet bruger
01. januar 2004 - 18:03 #53
done... hva sker der så?
Avatar billede Slettet bruger
01. januar 2004 - 18:04 #54
ok jeg akn godt se hvad der skete...
Avatar billede 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
Avatar billede 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?
Avatar billede 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.
Avatar billede Slettet bruger
01. januar 2004 - 18:09 #58
ok
Avatar billede Slettet bruger
01. januar 2004 - 18:11 #59
så er de andre slettet
Avatar billede Slettet bruger
01. januar 2004 - 18:13 #60
men hvordan gør jeg så at den skriver den på den danske måde?
Avatar billede Slettet bruger
01. januar 2004 - 18:14 #61
altså på sitet
Avatar billede Slettet bruger
01. januar 2004 - 18:19 #62
er du der?
Avatar billede 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']);
Avatar billede Slettet bruger
01. januar 2004 - 18:28 #64
i starten af hele filen... eller?
Avatar billede 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.
Avatar billede 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
Avatar billede Slettet bruger
01. januar 2004 - 18:37 #67
og row skal naturligvis rettes til den variabel du henter data ind i.
Avatar billede 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...?
Avatar billede Slettet bruger
01. januar 2004 - 18:40 #69
henter data ind i?
Avatar billede Slettet bruger
01. januar 2004 - 18:41 #70
kan du forklare det lidt nærmerer?
Avatar billede Slettet bruger
01. januar 2004 - 18:41 #71
nu virker det squ
Avatar billede 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
Avatar billede 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());

while ($row=mysql_fetch_assoc($resultat)){
  echo $row['title'] . "  " . strftime("%d. %b", $row['dato']) . "\n";
}

?>
Avatar billede Slettet bruger
01. januar 2004 - 18:43 #74
men nu er der så bare det problem og det er at den skriver 01 Jan. alle stedet
Avatar billede Slettet bruger
01. januar 2004 - 18:45 #75
Prøv at komme med et dump igen.
Avatar billede Slettet bruger
01. januar 2004 - 18:47 #76
det virker helt fint... nu... men vil det her gøre at den indsætter artikkler automatisk?
Avatar billede Slettet bruger
01. januar 2004 - 18:50 #77
nice det virker...!
Avatar billede Slettet bruger
01. januar 2004 - 18:50 #78
ligger du lige et svar?
Avatar billede Slettet bruger
01. januar 2004 - 18:51 #79
Den vil vise alle, der er fra samme dag eller ældre. Hvis det ikke var det, du mente må du spørge igen.

Hav tålmodighed, for jeg har kun begrænset tid resten af aftenen, så jeg svarer nok ikke så hurtigt.
Avatar billede Slettet bruger
01. januar 2004 - 18:51 #80
Og her var et svar
Avatar billede Slettet bruger
01. januar 2004 - 18:51 #81
det virker...
Avatar billede Slettet bruger
01. januar 2004 - 19:32 #82
takker
Avatar billede Slettet bruger
03. januar 2004 - 16:51 #83
Hvis der andre måder at udskrive datoen på(altså kildekode messingt)
Det skal stadig stå på sammen måde som det her:

<?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());

while ($row=mysql_fetch_assoc($resultat)){
  echo $row['title'] . "  " . strftime("%d. %b", $row['dato']) . "\n";
}

?>

Men bare en anden slags kodening jeg leder efter...
Avatar billede Slettet bruger
03. januar 2004 - 16:55 #84
findes skulle der stå ^ ved det forrige spørgsmål
Avatar billede Slettet bruger
03. januar 2004 - 16:57 #85
Jeg forstår ikke helt, hvad du spørger om.
Avatar billede Slettet bruger
03. januar 2004 - 17:31 #86
kan jeg godt slette title så der kun står datoen?

Like this >
<?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 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";
}

?>
Avatar billede Slettet bruger
03. januar 2004 - 17:36 #87
Så skal den se sådan her ud:

<?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 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");
Avatar billede 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..?
Avatar billede 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.

Her er et par eksempler med idag som eksempel:

echo strftime("%Y%m%d", $row['dato']) . "\n";
// 20040103

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

echo strftime("%d. %b %Y", $row['dato']) . "\n";
// 03. jan 2004

echo strftime("%d. %B %Y", $row['dato']) . "\n";
// 03. januar 2004

echo strftime("%a %d %b %y", $row['dato']) . "\n";
// lør 03. jan 04

Den fulde liste af koder til strftime kan findes på http://dk.php.net/strftime
Avatar billede Slettet bruger
04. januar 2004 - 12:56 #90
takker.... endnu engang
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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