datum operaties

  • Onderwerp starter Onderwerp starter FoBa
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

FoBa

Gebruiker
Lid geworden
16 feb 2012
Berichten
110
Hallo iedereen

Ik probeer een bewerking te doen met php.
Ik haal gegevens uit een mysql database, waaronder een datum. Nu wil ik een if else maken die iets afdrukt als er nog geen maand voorbij is.
bv: ik zet een bericht in mijn database met datum 2013-01-01, zolang het nog niet 2013-02-01 is moet dat bericht weergegeven worden.

alvast bedankt!
 
PHP:
if (date('m') == "01")
{
  // toon bericht uit database
}

Als je "01" niet wilt "hard-coden" in je code kan je de functie explode gebruiken om de datum die uit de database komt op te splitsen in jaar, maand en dag.
 
dit moet blijven werken, dus ook voor nieuwe berichten die op een andere datum geplaatst worden. De 01 kan ik dus niet gebruiken, hoe werkt juist die explode functie?
als ik het een beetje snap geeft dat een array terug...
 
tot nu toe heb ik deze code, die niet werkt :confused: Kunnen jullie zeggen waar de fout zit?

PHP:
<?php
					$sql ="SELECT * FROM nieuwsbericht;";
					
					$result = mysql_query($sql);
					
					$titel = mysql_result($result, "titel");
					$bericht = mysql_result($result, "bericht");
					$datum = mysql_result($result, "datum");
					
					if(){ // hier moet ik dan nog een bewerking ingeven zodat een bericht niet ouder dan 1 maand weergegeven wordt
						echo "<h2> $titel </h2>";
						echo "<p>$bericht</p>";
						echo "<p id=\"schuingedrukt\">Bericht geplaats op: $datum</p>";
					} else {
					echo "<p id=\"geenbericht\"> Er is momenteel geen nieuws</p>";
					};
					
					?>
 
Laatst bewerkt:
Daar kun je de database voor aan het werk zetten:
[sql]
SELECT
*
FROM
tabel
WHERE
date_expire < NOW()
[/sql]
Dan krijg je gewoon alleen de resultaten die je wilt hebben :)
 
ik doe nu dit en het werkt niet
PHP:
<?php
					$sql ="SELECT titel, bericht, datum FROM nieuwsbericht where weergeventot < now() order by desc id limit 1;";
					
					$result = mysql_query($sql);
					$num = mysql_numrows($result);

					$i = 0;
					while ($i < $num) {					
					$titel = mysql_result($result,$i, "titel");
					$bericht = mysql_result($result,$i, "bericht");
					$datum = mysql_result($result,$i, "datum");

						echo "<h2> $titel </h2>";
						echo "<p>$bericht</p>";
						echo "<p id=\"schuingedrukt\">Bericht geplaats op: $datum</p>";
					$i++;
					};
					
					?>
 
Ik merk dat ik een kleiner-dan teken heb getypt, terwijl ik een groter-dan bedoel :(

Wat voor data-type is het veld "weergeventot"? Dat moet wel een DATE, DATETIME of TIMESTAMP zijn anders kun je hem niet vergelijken met de NOW()-functie.

[sql]
SELECT
*
FROM
nieuwsbericht
WHERE
weergeventot > NOW();[/sql]
http://sqlfiddle.com/#!2/93a4a/2

Oh ja:
en het werkt niet
Daar kunnen we je niet echt mee helpen, wees duidelijker met wat er niet werkt.
 
Laatst bewerkt:
heel erg bedankt, het groter-dan, kleiner-dan teken had ik inderdaad ook al opgemerkt. mijn sql commando werkt ondertussen wel al. Maar ik krijg nog geen output.
Dit is de code die in mijn php file zit.
PHP:
$sql ="SELECT titel, bericht, datum FROM 'nieuwsbericht' where weergeventot>now() order by id desc limit 1;";
					
					$result = mysql_query($sql);
					
									
					$titel = mysql_result($result, "titel");
					$bericht = mysql_result($result, "bericht");
					$datum = mysql_result($result, "datum");

					echo "<h2>";
					echo $titel;
					echo "</h2>";
					echo "<p>$bericht</p>";
					echo "<p id=\"schuingedrukt\">Bericht geplaats op: $datum</p>";
 
Probeer dit eens:
PHP:
$sql = "
SELECT
	titel,
	bericht,
	datum
FROM
	nieuwsbericht
WHERE
	weergeventot > NOW()
ORDER BY id DESC
LIMIT 1;";

$result = mysql_query($sql);
if( !$result )
{
	printf( 'Er is een fout opgetreden! MySQL zegt: %s', mysql_error() );
}
else
{
	while( $row = mysql_fetch_assoc( $result ) )
	{
		printf( '
		<h2>%s</h2>
		<p>%s</p>
		<p id="schuingedrukt">Bericht geplaatst op: %s</p>',
		$row['titel'],
		$row['bericht'],
		$row['datum']);
	}
}
 
dank je, dankzij jouw voorstel kreeg ik de foutmelding te zien. Hij gaf een acces denied.
Dus ging ik kijken, in het begin van mijn pagina include ik de inlog gegevens. en de verwijzing naar het bestandje was niet correct.
Ik heb de verwijzing aangepast en het werkt nu :)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan