ugrás a tartalomhoz

PHP programozás - help

Hellhammer · 2010. Feb. 1. (H), 14.20
1

?

Denton · 2010. Feb. 1. (H), 14.24
Lehet, hogy velem van a gond, hogy nem látom mi is a konkrét kérdésed?
2

:)

gabesz666 · 2010. Feb. 1. (H), 14.33
Így nehéz lesz segíteni! :)
3

help

Hellhammer · 2010. Feb. 1. (H), 14.43
Üdv!
Egy kis segítség kéne PHP ügyben..
Egy non-profit szervezet honlapját szerkesztem egy ideje, ahol fontos, hogy az oldal látogatói értesüljenek a soron következő rendezvényekről, meg ilyesmikről.. ezt eddig egy iframe-mel megjelenített html-lel oldottam meg, amit kb havonta át kellett ugye írni, és ez elég macerás...ezért olyan PHP-t próbálok készíteni, ami kiírja a soron következő eseményeket.
Addig már eljutottam, hogy kb működik; kb pont úgy, mint egy "mai névnap" script: getdate() függvény; tömbökben a dátumok, és az események, az év 365 napjára.

aztán:
$a = 0;
$b = $a+1;
$c = $b+1;
$mai_esemeny = $_esemeny[$_datum[mon]][$_datum[mday]+$a];
$kov_esemeny = $_esemeny[$_datum[mon]][$_datum[mday]+$b];
$kovkov_esemeny = $_esemeny[$_datum[mon]][$_datum[mday]+$c];
stb

aztán
echo $mai_esemeny;
echo stb
a soron következő néhány eseményt kiírja..

A gondom=a kérdésem az lenne, hogy: a névnapokkal ellentétben az adott esetben nem minden nap van esemény. ezért azt próbálom elérni, hogyha pl. 02.01-jén van esemény, 02-án nincs, 03-án van, 04-én van stb, akkor 02.01-jén az 01.,03.,04-ei eseményeket írja ki, és a 02-ét ne vegye figyelembe.

olyasmivel próbálkoztam, hogy a semmi szót beírtam az üres napokra, és

if ($mai_esemeny == "semmi") {
$a = $a++
} else {
echo .....

tehát, hogy ha ma semmi, akkor lépjen át a köv-re, ha ott sincs semmi, akkor mégtovább

csak nem igazán működik.

Előre is köszönök bármi segítséget!!
4

bocs

Hellhammer · 2010. Feb. 1. (H), 14.44
bocs, első fórum kérdésem volt..nem vágtam a működést
5

honnan

Denton · 2010. Feb. 1. (H), 15.01
Honnan nyered az adatokat? mysql-ből? vagy simán tömbbe beleírod oszt annyi?
okosabb lenne mysql-ből. Ha pedig tömbből akkor pl:

Egyszerűsítve, van egy tömböd amiben az eseményeket tárolod, key a dátum

$esemenyek = Array();
$esemenyek['2010-01-10'] = "szuper nap";
$esemenyek['2010-02-10'] = "szuper nap ez is";

lehetne írni hozzá egy kereső függvényt, de szerintem egyszerűbb egy foreach-al végigfutni rajta inkább:

foreach($esemenyek as $datum => $esemeny)
{
if($datum == date("Y-m-d"))
{
print $esemeny;
//itt azt kezdesz az $esemeny stringgel amit akarsz.
break;
}
}
6

Re: Denton

Hellhammer · 2010. Feb. 1. (H), 15.20
Igen, tömbbe beír és annyi..

Köszi a segítséget, de a gondom az, hogy ez nem oldja meg az eredeti gondomat, bár köszönöm és, igen, igaz, hogy csak az eseményeket tárolni elegánsabb, és átláthatóbb..

De a mai esemény kiírása eddig is ment, a kérdésem, -a Te verziódra átírva-

Pl:
$esemenyek = Array();
$esemenyek['2010-04-11'] = "Ápr. 11. - Lehet nem ekkor van de húsvét";
$esemenyek['2010-04-12'] = "Ápr. 12. - hhétfő";
$esemenyek['2010-08-20'] = "Aug. 20. - államalapítás ünnepe";
$esemenyek['2010-12-25'] = "Dec. 25. - karácsony";
$esemenyek['2010-12-26'] = "Dec. 26. - karácsony2";
$esemenyek['2010-12-31'] = "Dec. 31. - szilveszter";

és az lenne a challange,-a fenti példával- hogy ma, holnap, holnapután, egészen április 11-éig az legyen kiírva, hogy:

Ápr. 11. - Lehet nem ekkor van de húsvét
Ápr. 12. - hhétfő
Aug. 20. - államalapítás ünnepe
Dec. 25. - karácsony

április 12-én pedig már az, hogy:

Ápr. 12. - hhétfő
Aug. 20. - államalapítás ünnepe
Dec. 25. - karácsony
Dec. 26. - karácsony2

Előre is köszi, ha erre tudsz mondani valami segítséget!!
7

aha

Denton · 2010. Feb. 1. (H), 15.27
Jah azt hiszem értelek, azt akarod, hogy minden eseményt írjon ki ami még nem futott le?

Akkor pl ennyi lenne rá a megoldás

foreach($esemenyek as $datum => $esemeny)
{
  if(strtotime($datum) >= strtotime(date("Y-m-d")))
  {
    $datum.": ".$esemeny."<br/>";
  }
}
8

ezt is köszi, de...

Hellhammer · 2010. Feb. 1. (H), 15.33
valami olyasmi,de nem egészen... a példában, amit ez előbb kreáltam, talán látszik: az a lényeg, hogy IGEN, a le nem futott események kellenek, de NEM mind. ˙(Mivel a valóságos esetben évi kb 100 esemény van..)
Az lenne a lényeg, hogy ha van ma esemény: a mai, és a legközelebbi 3; ha nincs, akkor a legközelebbi 4et..

Bocs, ha pontatlanul írtam, és köszi a segítséget!!
9

számláló

Denton · 2010. Feb. 1. (H), 15.39
Hát valóban lassacskán jutnak el az infók:)

nah figyu, csak be kell tenni egy számlálót:

$i=0;
foreach($esemenyek as $datum => $esemeny)  
 {  
   if($i==4)
   break;


   if(strtotime($datum) >= strtotime(date("Y-m-d")))  
   {  
     $datum.": ".$esemeny."<br/>";  
     $i++;
   }  
 }  
10

egyről beszélünk..

Hellhammer · 2010. Feb. 1. (H), 15.56
Bocs, hogy nehezen fejeztem ki magam pontosan... szóval akkor összerakva:

<?php
$esemenyek = Array();
$esemenyek['2010-02-01'] = "valami";
$esemenyek['2010-03-12'] = "egyéb";
$esemenyek['2010-04-20'] = "satöbbi";
$esemenyek['2010-06-25'] = "izé";
$esemenyek['2010-09-26'] = "akármi";
$esemenyek['2010-10-31'] = "bármi";

$i=0;

foreach($esemenyek as $datum => $esemenyek)
{
if($i==5)
break;
if(strtotime($datum) >= strtotime(date("Y-m-d")))
{
$datum.": ".$esemenyek."<br/>";
$i++;
}
}
?>

Ha jól raktam össze, amit mondtál... ami elég valószínűtlen, mivel egy teljesen üres fehér oldalt eredményez...

Köszi, ha megmondod, hol írtam el, mert én nem látom, hogy mi lehet a nemjó.
11

bocs

Denton · 2010. Feb. 1. (H), 16.04
Sry, úgy néz ki nem hatott a kávém:) (vagyis én írtam el) megyek is csinálni még egyet.

print($datum.": ".$esemenyek."<br/>");
12

Köszönöm

Hellhammer · 2010. Feb. 1. (H), 16.10
Köszi szépen a segítséget.. bár a nagy gondolkodásban tényleg nekem is eszembe juthatott volna, hogy azért egy print, vagy echo, vagy valami csak kéne bele...
Köszönöm, tökéletesen működik!!

Jó kávézást!

Üdv: Hellhammer
13

szív

Denton · 2010. Feb. 1. (H), 16.13
Nincs mit, thx;)