/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hjælp til nybegynder
Fra : steen


Dato : 26-09-07 11:45

Hej Alle

Jeg har lagt en aktivitets kalender på en side, hvor de lokale foreninger så
kan taste i.
Jeg skal så have lagt et udtræk fra DB på forsiden, som viser aktiviteter
fra og med dagsdato og 30 dage frem, sorteret efter dato. Samtidig vil jeg
gerne have ændret datoformat af udtræket (2007-09-26) til 26-09-07.
Nedenstående virker fint, men kan ikke finde ud af at lave dato om, og
heller ikke de 30 dage fra dagsdato.
Håber der er hjælp at hente.

På forhånd mange tak
Steen

<?php
include("connect.php");

$query = mysql_query("SELECT event_title,event_date FROM `events` ORDER BY
`events` . `event_date` ASC LIMIT 10;");
while($row = mysql_fetch_assoc($query))
{
echo $row['event_date'] . " - " . $row['event_title'] . "<br/>";
}
?>



 
 
Philip Nunnegaard (26-09-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 26-09-07 15:52

> Nedenstående virker fint, men kan ikke finde ud af at lave dato om, og
> heller ikke de 30 dage fra dagsdato.
> Håber der er hjælp at hente.

Dette omskriver datoen til dansk format:

$event_date = $row["event_date"];
$dato =
substr($event_date,8,2)."-".substr($event_date(5,2)."-".substr($event_date,0,4);

Oversat til dansk:
$dato = tegn 9+10 - tegn 6+7 - tegn 1-4

30 dage frem:
$om30dage = date('Y-m-d H:i:s', mktime(23, 59, 59, date('m'), date('d') +
30, date('Y')));

// Om 30 dage læses nu som 56. september 2007 kl. 23:59:59
// Dette oversætter den selv til 26. oktober.

Mere forklaring om mktime():
http://dk2.php.net/manual/en/function.mktime.php


Din SQL-sætning kommer så til at se sådan ud:
$query = mysql_query("SELECT event_title,event_date FROM `events` where
event_date <= '".$om30dage."' ORDER BY `events` . `event_date` ASC LIMIT
10;");

Din echo-sætning ser nu sådan ud:

echo $dato . " - " . $row["event_title"] . "<br />\n";

Det sidste \n er ikke strengt nødvendigt, men giver en kønnere kode i
html-outputtet.


steen (26-09-2007)
Kommentar
Fra : steen


Dato : 26-09-07 23:46

Hej
Tak for det hurtige svar, men kan ikke rigtig få det til at virke.
Har sikkert lavet "ged" idet men hvor?
Det ser sådan ud nu:

<?php
include("connect.php");

$event_date = $row["event_date"];
$dato =
substr($event_date,8,2)."-".substr($event_date(5,2)."-".substr($event_date,0,4);
$om30dage = date('Y-m-d H:i:s', mktime(23, 59, 59, date('m'), date('d') +
30, date('Y')));

$query = mysql_query("SELECT event_title,event_date FROM `events` where
event_date <='".$om30dage."' ORDER BY `events` . `event_date`");
while($row = mysql_fetch_assoc($query))

{
echo $dato . " - " . $row['event_title'] . "<br />\n";
}
?>


"Philip Nunnegaard" <philip@fjerndettehitsurf.dk> skrev i meddelelsen
news:46fa7221$0$63733$edfadb0f@dread14.news.tele.dk...
>> Nedenstående virker fint, men kan ikke finde ud af at lave dato om, og
>> heller ikke de 30 dage fra dagsdato.
>> Håber der er hjælp at hente.
>
> Dette omskriver datoen til dansk format:
>
> $event_date = $row["event_date"];
> $dato =
> substr($event_date,8,2)."-".substr($event_date(5,2)."-".substr($event_date,0,4);
>
> Oversat til dansk:
> $dato = tegn 9+10 - tegn 6+7 - tegn 1-4
>
> 30 dage frem:
> $om30dage = date('Y-m-d H:i:s', mktime(23, 59, 59, date('m'), date('d') +
> 30, date('Y')));
>
> // Om 30 dage læses nu som 56. september 2007 kl. 23:59:59
> // Dette oversætter den selv til 26. oktober.
>
> Mere forklaring om mktime():
> http://dk2.php.net/manual/en/function.mktime.php
>
>
> Din SQL-sætning kommer så til at se sådan ud:
> $query = mysql_query("SELECT event_title,event_date FROM `events` where
> event_date <= '".$om30dage."' ORDER BY `events` . `event_date` ASC LIMIT
> 10;");
>
> Din echo-sætning ser nu sådan ud:
>
> echo $dato . " - " . $row["event_title"] . "<br />\n";
>
> Det sidste \n er ikke strengt nødvendigt, men giver en kønnere kode i
> html-outputtet.


Philip Nunnegaard (27-09-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 27-09-07 16:31

> Tak for det hurtige svar, men kan ikke rigtig få det til at virke.
> Har sikkert lavet "ged" idet men hvor?

Ved ikke lige, om det er dét, men jeg er vist kommet til at skrive et
punktum et sted, hvor der skulle have været et komma:
ORDER BY `events` . `event_date` udskiftes med:
ORDER BY `events` , `event_date`

Vil du sortere efter dato først og derefter event, bliver det nok snarere:
ORDER BY `event_date` , `events`


Johan Holst Nielsen (26-09-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 26-09-07 17:49

steen wrote:
> Hej Alle
>
> Jeg har lagt en aktivitets kalender på en side, hvor de lokale
> foreninger så kan taste i.
> Jeg skal så have lagt et udtræk fra DB på forsiden, som viser
> aktiviteter fra og med dagsdato og 30 dage frem, sorteret efter dato.
> Samtidig vil jeg gerne have ændret datoformat af udtræket (2007-09-26)
> til 26-09-07.
> Nedenstående virker fint, men kan ikke finde ud af at lave dato om, og
> heller ikke de 30 dage fra dagsdato.
> Håber der er hjælp at hente.
>
>
> <?php
> include("connect.php");
>
> $query = mysql_query("SELECT event_title,event_date FROM `events` ORDER
> BY `events` . `event_date` ASC LIMIT 10;");
> while($row = mysql_fetch_assoc($query))
> {
> echo $row['event_date'] . " - " . $row['event_title'] . "<br/>";
> }
> ?>


prøv (bemærk DATE_FORMAT i SQL'en)

<?php
include("connect.php");

$query = mysql_query("SELECT event_title,
DATE_FORMAT(event_date,'%d-%m-%y') as fdate FROM `events` ORDER BY
`events` . `event_date` ASC LIMIT 10;");
while($row = mysql_fetch_assoc($query))
{
echo $row['fdate'] . " - " . $row['event_title'] . "<br/>";
}
?>


--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk

steen (26-09-2007)
Kommentar
Fra : steen


Dato : 26-09-07 23:38

Hej
Det virker bare perfekt med datoen mange tak for det.
Du skulle vel ikke have et forslag til at begrænse visningen fra i dag og en
måned frem i tiden?

>> Jeg skal så have lagt et udtræk fra DB på forsiden, som viser aktiviteter
>> fra og med dagsdato og 30 dage frem, sorteret efter dato.



> prøv (bemærk DATE_FORMAT i SQL'en)
>
> <?php
> include("connect.php");
>
> $query = mysql_query("SELECT event_title,
> DATE_FORMAT(event_date,'%d-%m-%y') as fdate FROM `events` ORDER BY
> `events` . `event_date` ASC LIMIT 10;");
> while($row = mysql_fetch_assoc($query))
> {
> echo $row['fdate'] . " - " . $row['event_title'] . "<br/>";
> }
> ?>


Johan Holst Nielsen (27-09-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 27-09-07 21:16

steen wrote:
> Hej
> Det virker bare perfekt med datoen mange tak for det.
> Du skulle vel ikke have et forslag til at begrænse visningen fra i dag
> og en måned frem i tiden?
>
>> $query = mysql_query("SELECT event_title,
>> DATE_FORMAT(event_date,'%d-%m-%y') as fdate FROM `events` ORDER BY
>> `events` . `event_date` ASC LIMIT 10;");
>> while($row = mysql_fetch_assoc($query))
>> {

du burde kunne tilføje en WHERE til din SQL

SELECT event_title, DATE_FORMAT(event_date,'%d-%m-%y') as fdate FROM
`events` WHERE event_date >= now() AND event_date <=
ADDDATE(now(),INTERVAL +1 MONTH) ORDER BY `events`.`event_date` ASC

--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk

steen (09-10-2007)
Kommentar
Fra : steen


Dato : 09-10-07 22:50

Hej Johan

Det kører bare som det skal nu... 1000 tak for hjælpen

mvh Steen


"Johan Holst Nielsen" <spam@phpgeek.dk> skrev i meddelelsen
news:46fc0f98$0$90274$14726298@news.sunsite.dk...
> steen wrote:
>> Hej
>> Det virker bare perfekt med datoen mange tak for det.
>> Du skulle vel ikke have et forslag til at begrænse visningen fra i dag og
>> en måned frem i tiden?
>>
>>> $query = mysql_query("SELECT event_title,
>>> DATE_FORMAT(event_date,'%d-%m-%y') as fdate FROM `events` ORDER BY
>>> `events` . `event_date` ASC LIMIT 10;");
>>> while($row = mysql_fetch_assoc($query))
>>> {
>
> du burde kunne tilføje en WHERE til din SQL
>
> SELECT event_title, DATE_FORMAT(event_date,'%d-%m-%y') as fdate FROM
> `events` WHERE event_date >= now() AND event_date <=
> ADDDATE(now(),INTERVAL +1 MONTH) ORDER BY `events`.`event_date` ASC
>
> --
> Johan Holst Nielsen
> Freelance PHP Developer - http://phpgeek.dk


Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408195
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste