if empty date functie
Ik heb even hulp nodig want ik kom er niet echt uit. Ben nog niet zo heel lang bezig met PHP en ben met een vriend aan een project begonnen en hebben al aardig wat hulp kunnen gebruiken maar daar leren we gelukkig alleen maar van.
Ik heb hier al eens eerder een vraag over gesteld en heb het uiteindelijk allemaal aan de gang gekregen alleen zit nu met een probleem en krijg het niet echt voor elkaar.
In het CMS wat we aan het maken zijn kun je een tekst actief en niet actief maken en ook een datum meegeven van wanneer tot wanneer hij getoond wordt. Nu werkt dit allemaal correct alleen je moet telkens een datum invoeren als je er een nieuwe tekst op zet. Wat ik nu wel is dat wanneer er een tekst op komt die geen einde heeft je de datum niet in hoeft te vullen en hij wel gewoon getoond wordt. Dus eigenlijk wanneer $online en $offline leeg zijn wil ik dat de tekst wel gewoon wordt getoond op de website.
Ik heb een tekst Class en een content file die de tekst toont.
Dit is mijn Class:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
public function getTeksten($database, $taal, $bladzijde = NULL, $actief = NULL, $id = NULL)
{
$sql = "SELECT * FROM ".$database."_teksten WHERE tekst_taal=:taal AND tekst_actief='1' AND tekst_online <= '".date('Y-m-d')."' AND tekst_offline >= '". date('Y-m-d')."'";
if(!empty($id))
{
if(is_numeric($id))
{
$sql .= " AND tekst_ID=:id";
}
else
{
return NULL;
}
}
else if(!empty($bladzijde))
{
if(is_numeric($bladzijde))
{
$sql .= " AND tekst_bladzijde=:bladzijde";
}
else
{
return NULL;
}
}
$sql .= " ORDER BY tekst_volgorde ASC";
try
{
$stmt = $this->db->prepare($sql);
$stmt->bindParam(":taal", $taal, PDO::PARAM_STR);
if(!empty($id) && is_numeric($id))
{
$stmt->bindParam(":id", $id, PDO::PARAM_INT);
}
else if(!empty($bladzijde) && is_numeric($bladzijde))
{
$stmt->bindParam(":bladzijde", $bladzijde, PDO::PARAM_INT);
}
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_OBJ);
$stmt->closeCursor();
return $result;
}
catch(Exception $e)
{
die($e->getMessage());
}
}
?>
public function getTeksten($database, $taal, $bladzijde = NULL, $actief = NULL, $id = NULL)
{
$sql = "SELECT * FROM ".$database."_teksten WHERE tekst_taal=:taal AND tekst_actief='1' AND tekst_online <= '".date('Y-m-d')."' AND tekst_offline >= '". date('Y-m-d')."'";
if(!empty($id))
{
if(is_numeric($id))
{
$sql .= " AND tekst_ID=:id";
}
else
{
return NULL;
}
}
else if(!empty($bladzijde))
{
if(is_numeric($bladzijde))
{
$sql .= " AND tekst_bladzijde=:bladzijde";
}
else
{
return NULL;
}
}
$sql .= " ORDER BY tekst_volgorde ASC";
try
{
$stmt = $this->db->prepare($sql);
$stmt->bindParam(":taal", $taal, PDO::PARAM_STR);
if(!empty($id) && is_numeric($id))
{
$stmt->bindParam(":id", $id, PDO::PARAM_INT);
}
else if(!empty($bladzijde) && is_numeric($bladzijde))
{
$stmt->bindParam(":bladzijde", $bladzijde, PDO::PARAM_INT);
}
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_OBJ);
$stmt->closeCursor();
return $result;
}
catch(Exception $e)
{
die($e->getMessage());
}
}
?>
En dit is mijn content file:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
include_once "class/tekst.class.php";
$tekstclass = new tekst($dbo);
$bladzijde = ((isset($_GET['p']) && is_numeric($_GET['p'])) ? $_GET['p'] : 1);
$teksten = $tekstclass->getTeksten($website, 'nl', $bladzijde);
foreach($teksten as $tekst)
{
if(!empty($tekst->tekst_img))
{
?>
<div class="imgcontainer">
<div class="imgcontent">
<img src="<?php echo $tekst->tekst_img; ?>" class="content_image" alt="<?php echo $tekst->tekst_header; ?>" />
</div>
</div>
<?php
}
?>
<h1><strong><?php echo $tekst->tekst_header; ?></strong></h1>
<?php echo $tekst->tekst_content."\n"; ?>
<?php
if($bladzijde == 1)
{
?>
<hr class="hrline"/>
<?php
}
?>
<br style="clear:both;"/>
<?php
}[
?>
include_once "class/tekst.class.php";
$tekstclass = new tekst($dbo);
$bladzijde = ((isset($_GET['p']) && is_numeric($_GET['p'])) ? $_GET['p'] : 1);
$teksten = $tekstclass->getTeksten($website, 'nl', $bladzijde);
foreach($teksten as $tekst)
{
if(!empty($tekst->tekst_img))
{
?>
<div class="imgcontainer">
<div class="imgcontent">
<img src="<?php echo $tekst->tekst_img; ?>" class="content_image" alt="<?php echo $tekst->tekst_header; ?>" />
</div>
</div>
<?php
}
?>
<h1><strong><?php echo $tekst->tekst_header; ?></strong></h1>
<?php echo $tekst->tekst_content."\n"; ?>
<?php
if($bladzijde == 1)
{
?>
<hr class="hrline"/>
<?php
}
?>
<br style="clear:both;"/>
<?php
}[
?>
In de database waar hij de date vandaan haalt staat date standaard op NULL.
Iemand enige ervaring hoe ik hier een juiste if statement voor maak? Heb het namelijk al op verschillende manieren geprobeerd maar het lukt niet. Komt waarschijnlijk door te weinig ervaring...
Alvast bedankt voor enige hulp
Groetjes
Joep
Gewijzigd op 29/05/2012 12:59:15 door Joep van Dongen
Code (php)
Toevoeging op 29/05/2012 13:11:32:
@Reshad
'= NULL' werkt niet, dan moet je 'IS NULL' gebruiken.
ah ja inderdaad je hebt gelijk :) excuus
Toevoeging op 29/05/2012 15:16:25:
Is er iemand die zoiets al gedaan heeft of ergens een voorbeeld heeft wat erop lijkt? Krijg het namelijk nog steeds niet voor elkaar:( Ik heb zoiets al eens gedaan met teksten, met een if(!empty) statement maar ik krijg het echt niet voor elkaar nu...