alert met if else
Gust - 23/09/2008 10:13 (laatste wijziging 23/09/2008 10:27)
MySQL interesse
Hallo allemaal,
Bekijk aub eventjes deze link
Je ziet als volgt:
- huidige tijd
- deadline tijd
- link naar de status
- die link probeer ik ook te includen, maar dat lukt niet.
Je ziet ook de 3 verschillende manieren:
rij 1: de huidige tijd is gelijk aan de deatline
rij 2: de huidige tijd is hoger dan de deatline
rij 3: de duidige tijd is lager dan de deatline
Dus:
- Als de deadline hoger is dan de huidige tijd, dan moet er komen: tijd verstreken
- Als de deadline gelijk is met de huidige tijd, dan moet er komen: niet veel tijd meer
- Als de deadline lager is met de huidige tijd, dan moet er komen: nog genoeg tijd
Daarvoor heb ik het volgende geschreven:
index.php
http://www.plaatscode.be/28623/
time.php
http://www.plaatscode.be/28625/
Bij time.php krijg ik altijd voor iedere rij dezelfde mededeling te zien. Maar als ik het stukje code weghaal:
$i=$id;
$no=$now;
$d_end=$datum_eind;
$i = $id ;
$no = $now ;
$d_end = $datum_eind ;
dan krijg ik de juiste mededeling te zien, maar wel voor alle rijen.
Hoe kan ik die if-else juist weergeven?
Hoe kan ik die include juist weergeven?
41 antwoorden
Gesponsorde links
Kr4nKz1n - 23/09/2008 10:16 (laatste wijziging 23/09/2008 10:27)
Onbekend
Ik zal even voor je kijken
Dit is niet mijn sterkste punt, want ik gebruik altijd time() Vind ik zelf veel makkelijker. Vooral voor dit soort toepassingen.
Edit
Miss. iets van dit
$aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array('', '', ''));
$now = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
$datum_eind = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
If($now > $datum_eind)
{
//Etc.
}
$aTimeReplace = Array ( 'from' => Array ( ':' , '-' , ' ' ) , 'to' => Array ( '' , '' , '' ) ) ; $now = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $now ) ; $datum_eind = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $datum_eind ) ;
If ( $now > $datum_eind )
{
//Etc.
}
Misschien niet de netste manier, maar wel simpel opgelost
Gust - 23/09/2008 11:36
MySQL interesse
Moet dit in time.php geplaatst worden?
En moeten die eerste 3 regels onder de query komen (dus onder $query="SELECT id, now, datum_eind FROM leveranciers ORDER BY id"; )
Ik heb dit zo gedaan, maar zie geen verandering. Dus wellicht die ik iets verkeerd?
Kr4nKz1n - 23/09/2008 12:15 (laatste wijziging 23/09/2008 12:17)
Onbekend
Ik snap niet waarom jij time.php hebt aangemaakt.
<?php
// variabelen initialiseren
$username = "geheim";
$password = "geheim";
$host="localhost";
$dbnaam="geheim";
$fout = "FOUT: openen database mislukt";
setlocale(LC_ALL,'nl_NL.ISO8859-1');
$query="SELECT id, now, datum_eind FROM leveranciers ORDER BY id";
// ---- einde initialisatie
$db=mysql_connect($host, $username, $password);
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query) or die (mysql_error());
?>
<html>
<head>
<title>Leveranciers</title>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><img src="images/save.gif" alt="bewerken" width="30" height="30"></b></div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">includen</font></b></div></td>
</tr>
<tr class="tekst">
<?php while (list($id, $now, $datum_eind) =
mysql_fetch_row($result)){
$i=$id;
$aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array('', '', ''));
$no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
$d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
If($no > $d_end)
{
echo "Nog tijd";
}
ElseIf($no < $d_end)
{
echo "Tijd verstreken";
}
Else
{
echo "Niet veel tijd meer";
}
echo("
<td bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"20%\">$i</td>
<td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$no</td>
<td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$d_end</td>
<td bgcolor=\"#F4ECCC\"align=\"center\" width=\"20%\"><a href=\"time.php?id=$id\"><img src=\"images/save.gif\" width=\"20\" height=\"20\" border=\"0\"></a></td>
<td bgcolor=\"#F4ECCC\"align=\"center\" width=\"20%\">file_get_contents('time.php?id=$id\');</td>
</tr>
\n");
}
?>
</table>
</body>
</html>
<?php
// variabelen initialiseren
$username = "geheim" ;
$password = "geheim" ;
$host = "localhost" ;
$dbnaam = "geheim" ;
$fout = "FOUT: openen database mislukt" ;
$query = "SELECT id, now, datum_eind FROM leveranciers ORDER BY id" ;
// ---- einde initialisatie
?>
<html>
<head>
<title>Leveranciers</title>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><img src="images/save.gif" alt="bewerken" width="30" height="30"></b></div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">includen</font></b></div></td>
</tr>
<tr class="tekst">
<?php while ( list ( $id , $now , $datum_eind ) =
$i = $id ;
$aTimeReplace = Array ( 'from' => Array ( ':' , '-' , ' ' ) , 'to' => Array ( '' , '' , '' ) ) ; $no = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $now ) ; $d_end = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $datum_eind ) ;
If ( $no > $d_end )
{
}
ElseIf ( $no < $d_end )
{
}
Else
{
echo "Niet veel tijd meer" ; }
<td bgcolor=\" #F4ECCC\" class=\" tekst\" align=\" center\" width=\" 20%\" >$i </td>
<td bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 20%\" >$no </td>
<td bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 20%\" >$d_end </td>
<td bgcolor=\" #F4ECCC\" align=\" center\" width=\" 20%\" ><a href=\" time.php?id=$id \" ><img src=\" images/save.gif\" width=\" 20\" height=\" 20\" border=\" 0\" ></a></td>
<td bgcolor=\" #F4ECCC\" align=\" center\" width=\" 20%\" >file_get_contents('time.php?id=$id \');</td>
</tr>
\n ") ;
}
?>
</table>
</body>
</html>
Ik ga de andere fouten niet oplossen.
Gust - 23/09/2008 13:13
MySQL interesse
Kr4nKz1n schreef:
Ik ga de andere fouten niet oplossen.
Dat hoeft ook niet hoor, maar een beetje duidelijk zijn mag gerust. En nu was je duidelijk genoeg
Die time.php was ontstaan in een poging een oplossing te zoeken, maar die is nu dus inderdaad niet nodig
Kr4nKz1n - 23/09/2008 13:24
Onbekend
En werkt het script?
Gust - 23/09/2008 13:38 (laatste wijziging 23/09/2008 13:52)
MySQL interesse
Ja, zo ongeveer
Tot nu toe verschenen alle resultaten boven de rij. Daarom heb ik die echo's verplaatst, maar krijg dus maar één rij te zien, en de rest verschijnt onder de tabel.
Dat heeft waaarschijnlijk met de } en zo te maken, maar ben er mee bezig.
Je kunt hier meekijken als je wilt
Nu ziet het er ongeveer zo uit (ik werk er intussen wel aan hé)
<?php
// variabelen initialiseren
$username = "geheim";
$password = "geheim";
$host="localhost";
$dbnaam="geheim";
$fout = "FOUT: openen database mislukt";
setlocale(LC_ALL,'nl_NL.ISO8859-1');
$query="SELECT id, now, datum_eind FROM leveranciers ORDER BY id";
// ---- einde initialisatie
$db=mysql_connect($host, $username, $password);
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query) or die (mysql_error());
?>
<html>
<head>
</head>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">status</td>
</tr>
<tr class="tekst">
<?php
while (list($id, $now, $datum_eind) = mysql_fetch_row($result)){
$i=$id;
$aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array('', '', ''));
$no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
$d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
echo("
<td bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"25%\">$i</td>
<td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$no</td>
<td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$d_end</td>
");
?>
<td width=25%>
<?php
If ($no > $d_end)
{
echo "Nog tijd";
}
ElseIf($no < $d_end)
{
echo "Tijd verstreken";
}
Else
{
echo "Niet veel tijd meer";
}
?>
</td>
</tr>
</table>
</font>
</body>
</html>
<?php
}
?>
<?php
// variabelen initialiseren
$username = "geheim" ;
$password = "geheim" ;
$host = "localhost" ;
$dbnaam = "geheim" ;
$fout = "FOUT: openen database mislukt" ;
$query = "SELECT id, now, datum_eind FROM leveranciers ORDER BY id" ;
// ---- einde initialisatie
?>
<html>
<head>
</head>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">status</td>
</tr>
<tr class="tekst">
<?php
$i = $id ;
$aTimeReplace = Array ( 'from' => Array ( ':' , '-' , ' ' ) , 'to' => Array ( '' , '' , '' ) ) ; $no = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $now ) ; $d_end = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $datum_eind ) ;
<td bgcolor=\" #F4ECCC\" class=\" tekst\" align=\" center\" width=\" 25%\" >$i </td>
<td bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 25%\" >$no </td>
<td bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 25%\" >$d_end </td>
" ) ;
?>
<td width=25%>
<?php
If ( $no > $d_end )
{
}
ElseIf ( $no < $d_end )
{
}
Else
{
echo "Niet veel tijd meer" ; }
?>
</td>
</tr>
</table>
</font>
</body>
</html>
<?php
}
?>
Kr4nKz1n - 23/09/2008 14:01
Onbekend
Dat komt omdat de } NA </html> staat.
Hij moet NA </tr>
Gust - 23/09/2008 14:12
MySQL interesse
Bedankt, nu werkt het.
Alleen door deze code komen er heel vreemde getallen ipv de datum:
$aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array('', '', ''));
$no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
$d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
$aTimeReplace = Array ( 'from' => Array ( ':' , '-' , ' ' ) , 'to' => Array ( '' , '' , '' ) ) ; $no = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $now ) ; $d_end = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $datum_eind ) ;
Dus ik dacht, ik maak er het volgende van:
$aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array('/', '/', '/'));
$no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
$d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
$aTimeReplace = Array ( 'from' => Array ( ':' , '-' , ' ' ) , 'to' => Array ( '/' , '/' , '/' ) ) ; $no = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $now ) ; $d_end = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $datum_eind ) ;
Dan zie je inderdaad de indeling in / maar je ziet nog steeds vreemde getallen ipv de datum
Kr4nKz1n - 23/09/2008 14:20
Onbekend
oow wacht, doe dit
$iDateNow = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
$iDateDeadline = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
$iDateNow = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $now ) ; $iDateDeadline = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $datum_eind ) ;
En de If-Else statement
//De eerste
If($iDateNow > $iDateDeadline)
//En de tweede
ElseIf($iDateNow < $iDateDeadline)
//De eerste
If ( $iDateNow > $iDateDeadline )
//En de tweede
ElseIf ( $iDateNow < $iDateDeadline )
My bad
Gust - 23/09/2008 14:28 (laatste wijziging 23/09/2008 15:11)
MySQL interesse
Nee sorry, je was juist denk ik. Ik zag iets over het hoofd
Ik had Time ingesteld ipv Date
Nu heb ik Date ingesteld, maar ik krijg het niet meer op current date. En als ik het op current date krijg, dan zou het alleen de yyyt-mm-dd mogen zijn, en niet de minuten erbij
Ik zal dat van jou eens even uittesten hé, zien wat er gebeurt
Ik heb intussen aan de if-else gewerkt:
<?php
If ($no < $d_end)
{
echo "Nog tijd";
}
ElseIf($no > $d_end)
{
echo "Tijd verstreken";
}
Else
{
echo "Niet veel tijd meer";}
?>
<?php
If ( $no < $d_end )
{
}
ElseIf ( $no > $d_end )
{
}
Else
{
echo "Niet veel tijd meer" ; }
?>
Dit werkt wel perfect. Alleen dat je nu maar twee mededelingen kunt krijgen.
Ik zou liever met tijd werken: de tijd wordt weergegeven adhv getallen, dus wil ik het zo toepassen:
<?php
If ($no > 31536000)
{
echo "Nog tijd genoeg";
}
ElseIf($no < 31536000)
{
echo "Nog een jaar tijd";
}
ElseIf($no < 3153600)
{
echo "Niet veel tijd meer";
}
Else
{
echo "Tijd verstreken";}
?>
<?php
If ( $no > 31536000 )
{
}
ElseIf ( $no < 31536000 )
{
echo "Nog een jaar tijd" ; }
ElseIf ( $no < 3153600 )
{
echo "Niet veel tijd meer" ; }
Else
{
?>
Maar alles geeft nu dezelfde mededeling
Kr4nKz1n - 23/09/2008 15:18 (laatste wijziging 23/09/2008 15:22)
Onbekend
Ja maar dit is geen normale tijd aanduiding.
$no ziet er als volgt uit:
JaarMaandDagUrenMinutenSeconden
20080923151243
Snap je? Dus hiermee kun je niet even checken.
Wanneer dat wel kan is met het volgende stukje code:
// Als $now eruit ziet als: 2008-09-22 15:12:43, kan je dit scriptje toepassen
$aDateTime = Explode(' ', $now);
$aDateTime[0] = Explode('-', $aDateTime[0]);
$aDateTime[1] = Explode(':', $aDateTime[1]);
$no = MkTime($aDateTime[1][2], $aDateTime[1][1], $aDateTime[1][0], $aDateTime[0][1], $aDateTime[0][2], $aDateTime[0][0]);
// Als $now eruit ziet als: 2008-09-22 15:12:43, kan je dit scriptje toepassen
$aDateTime [ 0 ] = Explode ( '-' , $aDateTime [ 0 ] ) ; $aDateTime [ 1 ] = Explode ( ':' , $aDateTime [ 1 ] ) ; $no = MkTime ( $aDateTime [ 1 ] [ 2 ] , $aDateTime [ 1 ] [ 1 ] , $aDateTime [ 1 ] [ 0 ] , $aDateTime [ 0 ] [ 1 ] , $aDateTime [ 0 ] [ 2 ] , $aDateTime [ 0 ] [ 0 ] ) ;
Is is $no in seconden
Edit
Kan een foutje in zitten.
Even toelichten:
Ik explode eerst $now op een spatie, dus heb ik 2 delen, datum en tijd.
Daarna explode ik beide delen en ga ik gewoon een dimensie verder in mijn array.
MkTime wil graag 6 waardes.
Hours, Minutes, Secondes, Months, Days, Years.
Die leg ik nu in de goede volgorde. Hieruit ontstaat een lange integer (van 10 cijfers). Dit zijn de secondes van 1 jan. 1970
Gust - 23/09/2008 15:34
MySQL interesse
Hij geeft dan wel 4 keer dezelfde foutmelding:
Warning: mktime() expects parameter 3 to be long, string given in /usr/www/users/dotserv/gazelle/leveranciers/index_if.php on line 78
Kr4nKz1n - 23/09/2008 15:51 (laatste wijziging 23/09/2008 15:51)
Onbekend
$no = MkTime($aDateTime[1][0], $aDateTime[1][1], $aDateTime[1][2], $aDateTime[0][1], $aDateTime[0][2], $aDateTime[0][0]);
$no = MkTime ( $aDateTime [ 1 ] [ 0 ] , $aDateTime [ 1 ] [ 1 ] , $aDateTime [ 1 ] [ 2 ] , $aDateTime [ 0 ] [ 1 ] , $aDateTime [ 0 ] [ 2 ] , $aDateTime [ 0 ] [ 0 ] ) ;
Sowieso was de volgorde fout van de tijden.
Edit
Is $now nog wel de datum EN tijd of alleen datum?
Gust - 23/09/2008 16:58 (laatste wijziging 24/09/2008 10:35)
MySQL interesse
Ik heb het bij je huidige regels gehouden, want anders veranderen mijn datums weer. En ook omwille van de volgende reden:
Ik probeer nu 3 parameters te gebruiken:
- de curdate (huidige datum)
- het datumveld ($no) --> Als deze is ingevuld komt er "ok" in de echo
- de deadline ($d_end)
Ik probeer het zo te doen:
Indien "datumveld " leeg is en de "huidige tijd " is nog meer dan 6 maanden van de "deadline ": echo tijd genoeg
Indien "datumveld " leeg is en de "huidige tijd " is minder dan 6 maanden van de "deadline ": echo minder dan 6 maanden
Indien "datumveld " leeg is en de "huidige tijd " is minder dan 3 maanden van de "deadline ": echo minder dan 3 maanden
Indien "datumveld " leeg is en de "huidige tijd " is meer de "deadline ": echo te laat
Indien "datumveld " niet leeg is: echo ok
<?php
if((!empty($no)) and curdate < ($d_end - 2419200))
{
echo "meer dan 1 maand tijd";
}
elseif((!empty($no)) and curdate > ($d_end - 2419200))
{
echo "minder dan 1 maand tijd";
}
elseif((!empty($no)) and curdate > ($d_end - 24192000))
{
echo "nog 10 maanden tijd";
}
elseif((empty($no)) and curdate < ($d_end - 0))
{
echo "<p><b><font color=\"#FF0000\">te laat</font></b></p>";
}
elseif(empty($no))
{
echo "invullen aub";
}
<?php
if ( ( ! empty ( $no ) ) and curdate
< ( $d_end - 2419200 ) ) {
echo "meer dan 1 maand tijd" ; }
elseif ( ( ! empty ( $no ) ) and curdate
> ( $d_end - 2419200 ) ) {
echo "minder dan 1 maand tijd" ; }
elseif ( ( ! empty ( $no ) ) and curdate
> ( $d_end - 24192000 ) ) {
echo "nog 10 maanden tijd" ; }
elseif ( ( empty ( $no ) ) and curdate
< ( $d_end - 0 ) ) {
echo "<p><b><font color=\" #FF0000\" >te laat</font></b></p>" ; }
{
}
Alleen krijg ik de foute mededelingen te zien tijdens tests, dus weet er iemand hoe dit wel moet zijn?
Kr4nKz1n - 24/09/2008 12:07
Onbekend
Wat is curdate?
heb je die gedefineerd (DEFINE())?
Vergeet je geen $
Gust - 24/09/2008 12:57 (laatste wijziging 24/09/2008 15:01)
MySQL interesse
Ik heb het nu zo gedefinieerd:
$aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array(':', '-', ''));
$no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
$d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
$curdate = time() + (7 * 24 * 60 * 60);
$aTimeReplace = Array ( 'from' => Array ( ':' , '-' , ' ' ) , 'to' => Array ( ':' , '-' , '' ) ) ; $no = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $now ) ; $d_end = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $datum_eind ) ; $curdate = time ( ) + ( 7 * 24 * 60 * 60 ) ;
Kr4nKz1n - 24/09/2008 15:17 (laatste wijziging 24/09/2008 15:32)
Onbekend
Ja dan moet je natuurlijk wel
if((!empty($no)) and $curdate < ($d_end - 2419200))
if ( ( ! empty ( $no ) ) and
$curdate < ( $d_end - 2419200 ) )
gebruiken.
Edit
<?php
//Hoef je niks aan te veranderen
Function DateToTime($sDate)
{
$aDateTime = Explode(' ', $sDate);
$aDateTime[0] = Explode('-', $aDateTime[0]);
$aDateTime[1] = Explode(':', $aDateTime[1]);
return MkTime($aDateTime[1][0], $aDateTime[1][1], $aDateTime[1][2], $aDateTime[0][1], $aDateTime[0][2], $aDateTime[0][0]);
}
// variabelen initialiseren
$username = "geheim";
$password = "geheim";
$host="localhost";
$dbnaam="geheim";
$fout = "FOUT: openen database mislukt";
setlocale(LC_ALL,'nl_NL.ISO8859-1');
$query="SELECT id, now, datum_eind FROM leveranciers ORDER BY id";
// ---- einde initialisatie
$db=mysql_connect($host, $username, $password);
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query) or die (mysql_error());
?>
<html>
<head>
<title>Leveranciers</title>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><img src="images/save.gif" alt="bewerken" width="30" height="30"></b></div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">includen</font></b></div></td>
</tr>
<tr class="tekst">
<?php while (list($id, $now, $datum_eind) =
mysql_fetch_row($result)){
$i=$id;
$no=$now;
$d_end=$datum_eind;
echo("
<td bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"20%\">$i</td>
<td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$no</td>
<td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$d_end</td>
<td bgcolor=\"#F4ECCC\"align=\"center\" width=\"20%\"><a href=\"time.php?id=$id\"><img src=\"images/save.gif\" width=\"20\" height=\"20\" border=\"0\"></a></td>
<td bgcolor=\"#F4ECCC\"align=\"center\" width=\"20%\">");
If(DateToTime($no) > DateToTime($d_end))
{
echo "Deadline verstreken";
}
Else
{
echo "Deadline is nog even weg";
}
echo("</td>
</tr>
\n");
}
?>
</table>
</body>
</html>
<?php
//Hoef je niks aan te veranderen
Function DateToTime( $sDate )
{
$aDateTime [ 0 ] = Explode ( '-' , $aDateTime [ 0 ] ) ; $aDateTime [ 1 ] = Explode ( ':' , $aDateTime [ 1 ] ) ; return MkTime ( $aDateTime [ 1 ] [ 0 ] , $aDateTime [ 1 ] [ 1 ] , $aDateTime [ 1 ] [ 2 ] , $aDateTime [ 0 ] [ 1 ] , $aDateTime [ 0 ] [ 2 ] , $aDateTime [ 0 ] [ 0 ] ) ; }
// variabelen initialiseren
$username = "geheim" ;
$password = "geheim" ;
$host = "localhost" ;
$dbnaam = "geheim" ;
$fout = "FOUT: openen database mislukt" ;
$query = "SELECT id, now, datum_eind FROM leveranciers ORDER BY id" ;
// ---- einde initialisatie
?>
<html>
<head>
<title>Leveranciers</title>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><img src="images/save.gif" alt="bewerken" width="30" height="30"></b></div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">includen</font></b></div></td>
</tr>
<tr class="tekst">
<?php while ( list ( $id , $now , $datum_eind ) =
$i = $id ;
$no = $now ;
$d_end = $datum_eind ;
<td bgcolor=\" #F4ECCC\" class=\" tekst\" align=\" center\" width=\" 20%\" >$i </td>
<td bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 20%\" >$no </td>
<td bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 20%\" >$d_end </td>
<td bgcolor=\" #F4ECCC\" align=\" center\" width=\" 20%\" ><a href=\" time.php?id=$id \" ><img src=\" images/save.gif\" width=\" 20\" height=\" 20\" border=\" 0\" ></a></td>
<td bgcolor=\" #F4ECCC\" align=\" center\" width=\" 20%\" >" ) ;
If ( DateToTime( $no ) > DateToTime( $d_end ) )
{
echo "Deadline verstreken" ; }
Else
{
echo "Deadline is nog even weg" ; }
</tr>
\n ") ;
}
?>
</table>
</body>
</html>
Wat krijg je hiermee?
Als je een date door DateToTime gooit krijg je het in secondes terug. Dan kun je nu rekenen met secondes.
Bijv:
If(DateToTime($no) > DateToTime($d_end)) // Wanneer $no LATER is dan $d_end
If(DateToTime($no) < DateToTime($d_end)) // Kun je uitrekenen hoelang je nog hebt
$HoelangNog = DateToTime($d_end) - DateToTime($no); // Zo lang nog in secondes. Dit kun je gebruiken in Date()
If ( DateToTime( $no ) > DateToTime( $d_end ) ) // Wanneer $no LATER is dan $d_end
If ( DateToTime( $no ) < DateToTime( $d_end ) ) // Kun je uitrekenen hoelang je nog hebt
$HoelangNog = DateToTime( $d_end ) - DateToTime( $no ) ; // Zo lang nog in secondes. Dit kun je gebruiken in Date()
Gust - 24/09/2008 16:12
MySQL interesse
[quote=Kr4nKz1n]Ja dan moet je natuurlijk wel
[..code..]
gebruiken.
Ja, ik had inmiddels de code wat veranderd, was het vergeten te zeggen. Als je deze pagina bekijkt dan zie je dat het niet klopt (bv bij een deadline die verstreken is staat er "nog 1 maand).
<?php
// variabelen initialiseren
$username = "geheim";
$password = "geheim";
$host="localhost";
$dbnaam="geheim";
$fout = "FOUT: openen database mislukt";
$query="SELECT id, now, currentdate, datum_eind FROM leveranciers ORDER BY id";
// ---- einde initialisatie
$db=mysql_connect($host, $username, $password);
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query) or die (mysql_error());
?>
<html>
<head>
<title>Leveranciers</title>
<style>
body {
background-color: #FFFFCC;
}
.tekst_titel {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color:#4E4110;
}
.tekst_titel_klein {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: bold;
color:#4E4110;
}
.tekst {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color:#000000;
}
.tekstveld {
background-color: #FFEAB3;
font-size: 11px;
color: #2c4c64;
font-family: verdana;
border: 1px solid #2c4c64;
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">datum van invoering</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">status</td>
</tr>
<tr>
<?php
while (list($id, $now, $currentdate, $datum_eind) = mysql_fetch_row($result)){
$i=$id;
$aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array(':', '-', ''));
$no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
$d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
$currentdate = time() + (7 * 24 * 60 * 60);
echo("
<td class=\"tekst\" bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"25%\">$i</td>
<td class=\"tekst\" bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$no</td>
<td class=\"tekst\" bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$d_end</td>
");
?>
<td class="tekst" width=25%>
<?php
if((empty($no)) and $currentdate > ($d_end - 2419200))
{
echo "minder dan 1 maand";
}
elseif((empty($no)) and $currentdate > ($d_end - 4838400))
{
echo "minder dan 2 maanden";
}
elseif((empty($no)) and $currentdate > ($d_end - 14515200))
{
echo "minder dan 6 maanden";
}
elseif((empty($no)) and $currentdate > ($d_end - 24192000))
{
echo "Tijd genoeg";
}
elseif(!empty($no))
{
echo "ok";
}
?>
</td>
</tr>
<?php
}
?>
</table>
</font>
</body>
</html>
<?php
// variabelen initialiseren
$username = "geheim" ;
$password = "geheim" ;
$host = "localhost" ;
$dbnaam = "geheim" ;
$fout = "FOUT: openen database mislukt" ;
$query = "SELECT id, now, currentdate, datum_eind FROM leveranciers ORDER BY id" ;
// ---- einde initialisatie
?>
<html>
<head>
<title>Leveranciers</title>
<style>
body {
background-color: #FFFFCC;
}
.tekst_titel {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color:#4E4110;
}
.tekst_titel_klein {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: bold;
color:#4E4110;
}
.tekst {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color:#000000;
}
.tekstveld {
background-color: #FFEAB3;
font-size: 11px;
color: #2c4c64;
font-family: verdana;
border: 1px solid #2c4c64;
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">datum van invoering</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">status</td>
</tr>
<tr>
<?php
$i = $id ;
$aTimeReplace = Array ( 'from' => Array ( ':' , '-' , ' ' ) , 'to' => Array ( ':' , '-' , '' ) ) ; $no = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $now ) ; $d_end = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $datum_eind ) ; $currentdate = time ( ) + ( 7 * 24 * 60 * 60 ) ;
<td class=\" tekst\" bgcolor=\" #F4ECCC\" class=\" tekst\" align=\" center\" width=\" 25%\" >$i </td>
<td class=\" tekst\" bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 25%\" >$no </td>
<td class=\" tekst\" bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 25%\" >$d_end </td>
" ) ;
?>
<td class="tekst" width=25%>
<?php
if ( ( empty ( $no ) ) and
$currentdate > ( $d_end - 2419200 ) ) {
echo "minder dan 1 maand" ; }
elseif ( ( empty ( $no ) ) and
$currentdate > ( $d_end - 4838400 ) ) {
echo "minder dan 2 maanden" ; }
elseif ( ( empty ( $no ) ) and
$currentdate > ( $d_end - 14515200 ) ) {
echo "minder dan 6 maanden" ; }
elseif ( ( empty ( $no ) ) and
$currentdate > ( $d_end - 24192000 ) ) {
}
{
}
?>
</td>
</tr>
<?php
}
?>
</table>
</font>
</body>
</html>
Kr4nKz1n - 24/09/2008 16:33
Onbekend
Heb je mijn code gezien van mijn vorige post?
Kr4nKz1n - 24/09/2008 17:36
Onbekend
welke dan?
lijkt mij handig als je die geeft..l
Gust - 25/09/2008 08:55
MySQL interesse
Dan krijg ik in de laatste kolim 2 x het volgend bericht:
Warning: mktime() expects parameter 1 to be long, string given in /usr/www/users/dotserv/gazelle/leveranciers/index_if1.php on line 8
Line 8 is:
return MkTime($aDateTime[1][0], $aDateTime[1][1], $aDateTime[1][2], $aDateTime[0][1], $aDateTime[0][2], $aDateTime[0][0]);
}
return MkTime ( $aDateTime [ 1 ] [ 0 ] , $aDateTime [ 1 ] [ 1 ] , $aDateTime [ 1 ] [ 2 ] , $aDateTime [ 0 ] [ 1 ] , $aDateTime [ 0 ] [ 2 ] , $aDateTime [ 0 ] [ 0 ] ) ; }
Je kunt het zien op deze pagina
Kr4nKz1n - 25/09/2008 09:03
Onbekend
Je zegt dat $no de waarde van $now moet krijgen.
Welke waarde heeft $now (dus wat staat er in de database)?
Datum of datum en tijd?
Je hebt een paar keer gezegd dat je dat heb gewijzigd ofzo.
Het moet datum+tijd zijn. Ik heb de functie bij mij uitgebreid en het werkt...
Gust - 25/09/2008 10:44 (laatste wijziging 25/09/2008 10:45)
MySQL interesse
Dit is de database:
CREATE TABLE `mijn_tabel` (
`id` int(11) NOT NULL auto_increment,
`now` date default NULL,
`datum_eind` date default '0000-00-00',
`currentdate` time NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;
#
# Gegevens worden uitgevoerd voor tabel `mijn_tabel`
#
INSERT INTO `mijn_tabel` VALUES (11, '2008-09-23', '2008-12-25', '00:00:00');
INSERT INTO `mijn_tabel` VALUES (12, '2008-09-23', '2008-10-01', '00:00:00');
INSERT INTO `mijn_tabel` VALUES (13, '2008-09-23', '2009-11-11', '00:00:00');
INSERT INTO `mijn_tabel` VALUES (15, NULL, '2007-09-23', '00:00:00');
INSERT INTO `mijn_tabel` VALUES (16, NULL, '2008-12-31', '00:00:00');
INSERT INTO `mijn_tabel` VALUES (17, '2008-09-24', '1997-12-12', '00:00:00');
INSERT INTO `mijn_tabel` VALUES (18, NULL, '2008-12-12', '00:00:00');
CREATE TABLE `mijn_tabel` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`now` date DEFAULT NULL ,
`datum_eind` date DEFAULT '0000-00-00' ,
`currentdate` time NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE= MyISAM AUTO_INCREMENT = 19 DEFAULT CHARSET= latin1 AUTO_INCREMENT = 19 ;
#
# Gegevens worden uitgevoerd voor tabel `mijn_tabel`
#
INSERT INTO `mijn_tabel` VALUES ( 11 , '2008-09-23' , '2008-12-25' , '00:00:00' ) ;
INSERT INTO `mijn_tabel` VALUES ( 12 , '2008-09-23' , '2008-10-01' , '00:00:00' ) ;
INSERT INTO `mijn_tabel` VALUES ( 13 , '2008-09-23' , '2009-11-11' , '00:00:00' ) ;
INSERT INTO `mijn_tabel` VALUES ( 15 , NULL , '2007-09-23' , '00:00:00' ) ;
INSERT INTO `mijn_tabel` VALUES ( 16 , NULL , '2008-12-31' , '00:00:00' ) ;
INSERT INTO `mijn_tabel` VALUES ( 17 , '2008-09-24' , '1997-12-12' , '00:00:00' ) ;
INSERT INTO `mijn_tabel` VALUES ( 18 , NULL , '2008-12-12' , '00:00:00' ) ;
De code zoals zoals m eerst was (dus wat wij aan het doen zijn): hier te bekijken
<?php //Hoef je niks aan te veranderen
Function DateToTime($sDate)
{
$aDateTime = Explode(' ', $sDate);
$aDateTime[0] = Explode('-', $aDateTime[0]);
$aDateTime[1] = Explode(':', $aDateTime[1]);
return MkTime($aDateTime[1][0], $aDateTime[1][1], $aDateTime[1][2], $aDateTime[0][1], $aDateTime[0][2], $aDateTime[0][0]);
}
$username = "geheim";
$password = "geheim";
$host="localhost";
$dbnaam="geheim";
$fout = "FOUT: openen database mislukt";
setlocale(LC_ALL,'nl_NL.ISO8859-1');
$query="SELECT id, now, currentdate, datum_eind FROM mijn_tabel ORDER BY id";
// ---- einde initialisatie
$db=mysql_connect($host, $username, $password);
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query) or die (mysql_error());
?>
<html>
<head>
<title>boeken</title>
<style>
body {
background-color: #FFFFCC;
}
.tekst_titel {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color:#4E4110;
}
.tekst_titel_klein {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: bold;
color:#4E4110;
}
.tekst {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color:#000000;
}
.tekstveld {
background-color: #FFEAB3;
font-size: 11px;
color: #2c4c64;
font-family: verdana;
border: 1px solid #2c4c64;
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><img src="images/save.gif" alt="bewerken" width="30" height="30"></b></div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">includen</font></b></div></td>
</tr>
<tr class="tekst">
<?php while (list($id, $now, $datum_eind) =
mysql_fetch_row($result)){
$i=$id;
$no=$now;
$d_end=$datum_eind;
echo("
<td bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"20%\">$i</td>
<td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$no</td>
<td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$d_end</td>
<td bgcolor=\"#F4ECCC\"align=\"center\" width=\"20%\"><a href=\"time.php?id=$id\"><img src=\"images/save.gif\" width=\"20\" height=\"20\" border=\"0\"></a></td>
<td bgcolor=\"#F4ECCC\"align=\"center\" width=\"20%\">");
If(DateToTime($no) > DateToTime($d_end))
{
echo "Deadline verstreken";
}
Else
{
echo "Deadline is nog even weg";
}
echo("</td>
</tr>
\n");
}
?>
</table>
</body>
</html>
<?php //Hoef je niks aan te veranderen
Function DateToTime( $sDate )
{
$aDateTime [ 0 ] = Explode ( '-' , $aDateTime [ 0 ] ) ; $aDateTime [ 1 ] = Explode ( ':' , $aDateTime [ 1 ] ) ; return MkTime ( $aDateTime [ 1 ] [ 0 ] , $aDateTime [ 1 ] [ 1 ] , $aDateTime [ 1 ] [ 2 ] , $aDateTime [ 0 ] [ 1 ] , $aDateTime [ 0 ] [ 2 ] , $aDateTime [ 0 ] [ 0 ] ) ; }
$username = "geheim" ;
$password = "geheim" ;
$host = "localhost" ;
$dbnaam = "geheim" ;
$fout = "FOUT: openen database mislukt" ;
$query = "SELECT id, now, currentdate, datum_eind FROM mijn_tabel ORDER BY id" ;
// ---- einde initialisatie
?>
<html>
<head>
<title>boeken</title>
<style>
body {
background-color: #FFFFCC;
}
.tekst_titel {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color:#4E4110;
}
.tekst_titel_klein {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: bold;
color:#4E4110;
}
.tekst {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color:#000000;
}
.tekstveld {
background-color: #FFEAB3;
font-size: 11px;
color: #2c4c64;
font-family: verdana;
border: 1px solid #2c4c64;
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><img src="images/save.gif" alt="bewerken" width="30" height="30"></b></div></td>
<td width="20%" valign="top" bgcolor="#E9D896"><div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">includen</font></b></div></td>
</tr>
<tr class="tekst">
<?php while ( list ( $id , $now , $datum_eind ) =
$i = $id ;
$no = $now ;
$d_end = $datum_eind ;
<td bgcolor=\" #F4ECCC\" class=\" tekst\" align=\" center\" width=\" 20%\" >$i </td>
<td bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 20%\" >$no </td>
<td bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 20%\" >$d_end </td>
<td bgcolor=\" #F4ECCC\" align=\" center\" width=\" 20%\" ><a href=\" time.php?id=$id \" ><img src=\" images/save.gif\" width=\" 20\" height=\" 20\" border=\" 0\" ></a></td>
<td bgcolor=\" #F4ECCC\" align=\" center\" width=\" 20%\" >" ) ;
If ( DateToTime( $no ) > DateToTime( $d_end ) )
{
echo "Deadline verstreken" ; }
Else
{
echo "Deadline is nog even weg" ; }
</tr>
\n ") ;
}
?>
</table>
</body>
</html>
De code zoals ik hem veranderd heb, en hier te bekijken :
<?php
Function DateToTime($sDate){ $aDateTime = Explode(' ', $sDate); $aDateTime[0] = Explode('-', $aDateTime[0]); $aDateTime[1] = Explode(':', $aDateTime[1]); return MkTime($aDateTime[1][0], $aDateTime[1][1], $aDateTime[1][2], $aDateTime[0][1], $aDateTime[0][2], $aDateTime[0][0]);}
// variabelen initialiseren
$username = "geheim";
$password = "geheim";
$host="localhost";
$dbnaam="geheim";
$fout = "FOUT: openen database mislukt";
$query="SELECT id, now, currentdate, datum_eind FROM mijn_tabel ORDER BY id";
// ---- einde initialisatie
$db=mysql_connect($host, $username, $password);
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query) or die (mysql_error());
?>
<html>
<head>
<title>Leveranciers</title>
<style>
body {
background-color: #FFFFCC;
}
.tekst_titel {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color:#4E4110;
}
.tekst_titel_klein {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: bold;
color:#4E4110;
}
.tekst {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color:#000000;
}
.tekstveld {
background-color: #FFEAB3;
font-size: 11px;
color: #2c4c64;
font-family: verdana;
border: 1px solid #2c4c64;
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">datum van invoering</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">status</td>
</tr>
<tr>
<?php
while (list($id, $now, $currentdate, $datum_eind) = mysql_fetch_row($result)){
$i=$id;
$aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array(':', '-', ''));
$no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
$d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
$currentdate = time() + (7 * 24 * 60 * 60);
echo("
<td class=\"tekst\" bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"25%\">$i</td>
<td class=\"tekst\" bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$no</td>
<td class=\"tekst\" bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$d_end</td>
");
?>
<td class="tekst" width=25%>
<?php
if((empty($no)) and ($currentdate > ($d_end - 2419200)))
{
echo "minder dan 1 maand";
}
elseif((empty($no)) and ($currentdate > ($d_end - 4838400)))
{
echo "minder dan 2 maanden";
}
elseif((empty($no)) and ($currentdate > ($d_end - 14515200)))
{
echo "minder dan 6 maanden";
}
elseif((empty($no)) and ($currentdate > ($d_end - 24192000)))
{
echo "Tijd genoeg";
}
elseif(!empty($no))
{
echo "ok";
}
?></td>
</tr>
<?php
}
?>
</table>
</font>
</body>
</html>
<?php
Function DateToTime
( $sDate ) { $aDateTime = Explode ( ' ' , $sDate ) ; $aDateTime [ 0 ] = Explode ( '-' , $aDateTime [ 0 ] ) ; $aDateTime [ 1 ] = Explode ( ':' , $aDateTime [ 1 ] ) ; return MkTime ( $aDateTime [ 1 ] [ 0 ] , $aDateTime [ 1 ] [ 1 ] , $aDateTime [ 1 ] [ 2 ] , $aDateTime [ 0 ] [ 1 ] , $aDateTime [ 0 ] [ 2 ] , $aDateTime [ 0 ] [ 0 ] ) ; }
// variabelen initialiseren
$username = "geheim" ;
$password = "geheim" ;
$host = "localhost" ;
$dbnaam = "geheim" ;
$fout = "FOUT: openen database mislukt" ;
$query = "SELECT id, now, currentdate, datum_eind FROM mijn_tabel ORDER BY id" ;
// ---- einde initialisatie
?>
<html>
<head>
<title>Leveranciers</title>
<style>
body {
background-color: #FFFFCC;
}
.tekst_titel {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color:#4E4110;
}
.tekst_titel_klein {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: bold;
color:#4E4110;
}
.tekst {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color:#000000;
}
.tekstveld {
background-color: #FFEAB3;
font-size: 11px;
color: #2c4c64;
font-family: verdana;
border: 1px solid #2c4c64;
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
<tr>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">datum van invoering</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
<td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">status</td>
</tr>
<tr>
<?php
$i = $id ;
$aTimeReplace = Array ( 'from' => Array ( ':' , '-' , ' ' ) , 'to' => Array ( ':' , '-' , '' ) ) ; $no = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $now ) ; $d_end = Str_Replace ( $aTimeReplace [ 'from' ] , $aTimeReplace [ 'to' ] , $datum_eind ) ; $currentdate = time ( ) + ( 7 * 24 * 60 * 60 ) ;
<td class=\" tekst\" bgcolor=\" #F4ECCC\" class=\" tekst\" align=\" center\" width=\" 25%\" >$i </td>
<td class=\" tekst\" bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 25%\" >$no </td>
<td class=\" tekst\" bgcolor=\" #efe3b5\" class=\" tekst\" width=\" 25%\" >$d_end </td>
" ) ;
?>
<td class="tekst" width=25%>
<?php
if ( ( empty ( $no ) ) and
( $currentdate > ( $d_end - 2419200 ) ) ) {
echo "minder dan 1 maand" ; }
elseif ( ( empty ( $no ) ) and
( $currentdate > ( $d_end - 4838400 ) ) ) {
echo "minder dan 2 maanden" ; }
elseif ( ( empty ( $no ) ) and
( $currentdate > ( $d_end - 14515200 ) ) ) {
echo "minder dan 6 maanden" ; }
elseif ( ( empty ( $no ) ) and
( $currentdate > ( $d_end - 24192000 ) ) ) {
}
{
}
?> </td>
</tr>
<?php
}
?>
</table>
</font>
</body>
</html>
Kr4nKz1n - 25/09/2008 10:59
Onbekend
Ja precies in de database heb je al helemaal geen tijd meer in staan.
Is dit een groot systeem en heeft dit koppelingen naar andere tabellen etc.?
Zo niet dan gaan we die tijden even aanpassen.
Dan worden now, datum_eind en currentdate INT(10)
Wat betekent die currentdate eigenlijk?
Gust - 25/09/2008 13:07 (laatste wijziging 25/09/2008 13:07)
MySQL interesse
Die currentdate was huidige tijd, maar dat kan ook weg zeker?
Er waren nog veel meer parameters hoor, maar laten we de database eventjes wat duidelijker aanpassen, want nu is het nogal verwarrend met die "now" (dat lijkt wel op de hudige tijd, terwijl dat de ingevoerde datum van de dag zelf is), dus verandeen we dat in "binnengebracht"?
Dus wat is er nodig?
- $ID
- $binnengebracht (de vorige $no)
- $deadline
- en dan zou de hudige tijd nog ergens in mee moeten spelen?
Kr4nKz1n - 25/09/2008 13:13 (laatste wijziging 25/09/2008 13:22)
Onbekend
CREATE TABLE `mijn_tabel` (
`id` int(11) NOT NULL auto_increment,
`now` int(10) default NULL,
`deadline` int(10) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE `mijn_tabel` (
`id` int( 11 ) NOT NULL auto_increment,
`now` int( 10 ) default NULL ,
`deadline` int( 10 ) default NULL ,
) ENGINE= MyISAM AUTO_INCREMENT= 1 DEFAULT CHARSET= latin1 AUTO_INCREMENT= 1 ;
Dit zijn de enige velden ?
Waarom geen naam van het project etc.? Nouja dat mag je zelf doen ;)
je hebt now en deadline nodig.
Alhoewel ik now niet begrijp
Wat betekent now ?
En Deadline is wanneer het project afgerond moet zijn of niet?
Edit
Wat mij betreft heb je 4 velden.
- id numeriek auto
- name naam van het project
- description beschrijving van het project
- deadline wanneer het project af moet zijn
Dan kun je een formulier maken om dit in te vullen, gewoon een input-veldje voor name en een textarea voor description.
Dan kun je voor deadline verschillende opties kiezen.
Of Select-velden voor de dag/maand/jaar en tijd etc.
Of je laat de gebruiker dat zelf invoeren en valideer je daarna.
Anyway, je moet de datum en tijd door de MkTime functie gooien
$iDeadline = MkTime($_POST['hour'], $_POST['minutes'], $_POST['seconds'], $_POST['month'], $_POST['day'], $_POST['year']);
$iDeadline = MkTime ( $_POST [ 'hour' ] , $_POST [ 'minutes' ] , $_POST [ 'seconds' ] , $_POST [ 'month' ] , $_POST [ 'day' ] , $_POST [ 'year' ] ) ;
Vervolgens kan je $iDeadline in de database gooien.
Of gewoon direct
Mysql_Query("INSERT INTO projects (name, description, deadline) VALUES ('".$_POST['name']."', '".$_POST['description']."', '".MkTime($_POST['hour'], $_POST['minutes'], $_POST['seconds'], $_POST['month'], $_POST['day'], $_POST['year'])."')");
Mysql_Query ( "INSERT INTO projects (name, description, deadline) VALUES ('" . $_POST [ 'name' ] . "', '" . $_POST [ 'description' ] . "', '" . MkTime ( $_POST [ 'hour' ] , $_POST [ 'minutes' ] , $_POST [ 'seconds' ] , $_POST [ 'month' ] , $_POST [ 'day' ] , $_POST [ 'year' ] ) . "')" ) ;
Hiermee kunnen wij nu heel simpel rekenen.
Gust - 25/09/2008 13:35 (laatste wijziging 25/09/2008 13:36)
MySQL interesse
Die $now (of $binnengebracht) dient voor het volgende:
Als dat veld ($now) leeg is moet er langs komen te staan:
- nog tijd genoeg (indien nog meer dan 6 maanden tijd voor de deadline)
- nog minder dan 6 maanden (inden er minder dan 6 maanden voor de deadline is)
- nog minder dan 3 maanden (inden er minder dan 3 maanden voor de deadline is)
- nog 1 maand (indien het minder dan een maand voor de deadline is)
- TE LAAT (indien de deadline niet gehaald is)
Als dat veld ($now) niet leeg (dus ingevuld) is moet er langs komen te staan:
- OK
Kr4nKz1n - 25/09/2008 13:42
Onbekend
Uhmz wat is dan de waarde van $now?
Nu weet ik nog steeds niet waarvoor die dient...
Dat betekent dat hij afgerond is of?
Gust - 25/09/2008 14:04
MySQL interesse
Dat is ook een datumveld.
Zolang dat veld leeg is, berekent de huidige tijd tov de dealine hoveel dagen er nog over zijn
Als er iets in dat datumveld is toegevoegd stopt hij met berekenen, want dan is dat niet meer nodig, en komt er "Ok" langs te staan
Vandaar deze code:
if((empty($now)) and ($curdate < ($deadline - 2419200)))
{
echo "minder dan 1 maand";
}
if ( ( empty ( $now ) ) and
( $curdate < ( $deadline - 2419200 ) ) ) {
echo "minder dan 1 maand" ; }
vertaald: indien veld leeg is EN huidige tijd is kleiner dan (deadline - 1 maand)
echo: minder dan een maand
Gesponsorde links
Dit onderwerp is gesloten .