20. april 2004 - 21:29 Der er 12 kommentarer og
1 løsning

Næste arrangeament..

Jeg står og mangler et script (i PHP), der kan udskrive det næste kommende arrangeament, og som så skifter videre, når datoen for det første arrangeament er overskreden.

Og jeg skal egentlig bare kunne skrive fx. de næste 10 arrangeamente ind i scriptet.

Det skal være noget i retningen af det her:
http://www.eksperten.dk/spm/317710
..bare i PHP.
Avatar billede dennismp Nybegynder
20. april 2004 - 21:38 #1
$sql = "SELECT * FROM tabel WHERE tidspunkt > now() ORDER BY tidspunkt LIMIT 1";

$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_row($res);
if( $row ) {
  print ".. næste arr.. er .. osv.";
}
else {
  print " Vi har ikke flere arr. pt.";
}
20. april 2004 - 22:25 #2
Uden database og mysql, arrangeamenterne skal skrives direkte i scriptet.
Avatar billede dennismp Nybegynder
20. april 2004 - 22:31 #3
$arr = array();
$arr[] = array( 'navn' => 'Navn1', 'beskrivelse' => 'Beskriv1', 'dato' => mktime(19,0,0,10,29,2003) ); //timer,min,sec,mdr,dag,år
$arr[] = array( 'navn' => 'Navn2', 'beskrivelse' => 'Beskriv2', 'dato' => mktime(19,0,0,10,29,2004) );

$now = time();

$found = false;
for($i=0;$i<count($arr) && !$found;$i++) {
  if( $a['dato'] > $now ) {
    $found = true;
    print "Næste arrangeament: {$a['navn']} - {$a['beskrivelse']}<br />";
  }
}

if(!$found) {
  print "Der er desværre ikke nogle arrangeamenter";
}
20. april 2004 - 23:32 #4
Den skriver ikke andet end, at der ikke er noget arrangeament, selvom jeg har sat en dato til 2006.
Jeg ved desuden ikke meget om PHP.
Avatar billede dennismp Nybegynder
20. april 2004 - 23:40 #5
Hovsa.

efter for(..) tilføjer du
$a = $arr[$i];
21. april 2004 - 11:24 #6
Der er noget galt, nu viser den kun den sidste dato på listen.
Avatar billede dennismp Nybegynder
21. april 2004 - 11:35 #7
Hvad data bruger du? Det ser nemlig ud til at virke fint her.
21. april 2004 - 11:54 #8
<?php
$arr = array();
$arr[] = array('beskrivelse' => 'Beskriv1', 'dato' => mktime(19,0,0,10,29,2003) ); //timer,min,sec,mdr,dag,år
$arr[] = array('beskrivelse' => 'Beskriv2', 'dato' => mktime(19,0,0,10,29,2005) );
$arr[] = array('beskrivelse' => 'Beskriv3', 'dato' => mktime(19,0,0,10,29,2008) );

$now = time();

$found = false;
for($i=0;$i<count($arr) && !$found;$i++)$a = $arr[$i]; {
  if( $a['dato'] > $now ) {
    $found = true;
    print "{$a['beskrivelse']}<br />";
  }
}

if(!$found) {
  print "(Listen er tom) (skriv til webmaster og klag!)";
}
?>

Jeg slettede "navn", men det vikrede heller ikke rigtigt før.
Den virker hverken på min egen pc (PHP4 + Apache), eller på web10.
Avatar billede dennismp Nybegynder
21. april 2004 - 12:04 #9
Ah, jeg har vist ikke klar nok, hvor du skulle sætte $a = $arr[$i]; ind.. Her er hele koden. Den skriver beskriv2 ud.

<?php
$arr = array();
$arr[] = array('beskrivelse' => 'Beskriv1', 'dato' => mktime(19,0,0,10,29,2003) ); //timer,min,sec,mdr,dag,år
$arr[] = array('beskrivelse' => 'Beskriv2', 'dato' => mktime(19,0,0,10,29,2005) );
$arr[] = array('beskrivelse' => 'Beskriv3', 'dato' => mktime(19,0,0,10,29,2008) );

$now = time();

$found = false;
for($i=0;$i<count($arr) && !$found;$i++) {
  $a = $arr[$i];
  if( $a['dato'] > $now ) {
    $found = true;
    print "{$a['beskrivelse']}<br />";
  }
}

if(!$found) {
  print "(Listen er tom) (skriv til webmaster og klag!)";
}
?>

navn burde virke, hvis du har brug for det, kan du bare smide det ind i array'et og tilføje en linje som der er med beskrivelse
21. april 2004 - 12:25 #10
Men datoerne skal stå i rækkefølge, ellers virler det ikke vel?
Avatar billede dennismp Nybegynder
21. april 2004 - 12:28 #11
Det skal de ja. Ellers skal de sorteres før de bruges.
21. april 2004 - 12:31 #12
Jamen så er jeg glad!
...Points?
Avatar billede dennismp Nybegynder
21. april 2004 - 12:34 #13
Så lad gå :-)
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