login  Naam:   Wachtwoord: 
Registreer je!
 Forum

alert met if else

Offline Gust - 23/09/2008 10:13 (laatste wijziging 23/09/2008 10:27)
Avatar van GustMySQL 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:

  1. $i=$id;
  2. $no=$now;
  3. $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
Offline Kr4nKz1n - 23/09/2008 10:16 (laatste wijziging 23/09/2008 10:27)
Avatar van Kr4nKz1n 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
  1. $aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array('', '', ''));
  2. $now = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
  3. $datum_eind = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
  4.  
  5. If($now > $datum_eind)
  6. {
  7. //Etc.
  8. }


Misschien niet de netste manier, maar wel simpel opgelost 
Offline Gust - 23/09/2008 11:36
Avatar van Gust 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?
Offline Kr4nKz1n - 23/09/2008 12:15 (laatste wijziging 23/09/2008 12:17)
Avatar van Kr4nKz1n Onbekend Ik snap niet waarom jij time.php hebt aangemaakt.

  1. <?php
  2. // variabelen initialiseren
  3. $username = "geheim";
  4. $password = "geheim";
  5. $host="localhost";
  6. $dbnaam="geheim";
  7. $fout = "FOUT: openen database mislukt";
  8.  
  9. setlocale(LC_ALL,'nl_NL.ISO8859-1');
  10.  
  11. $query="SELECT id, now, datum_eind FROM leveranciers ORDER BY id";
  12.  
  13. // ---- einde initialisatie
  14. $db=mysql_connect($host, $username, $password);
  15. mysql_select_db($dbnaam, $db) or die($fout);
  16. $result = mysql_query($query) or die (mysql_error());
  17. ?>
  18. <html>
  19. <head>
  20. <title>Leveranciers</title>
  21. <body>
  22. <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
  23. <table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
  24. <tr>
  25. <td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
  26. <td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
  27. <td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
  28. <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>
  29. <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>
  30. </tr>
  31. <tr class="tekst">
  32. <?php while (list($id, $now, $datum_eind) =
  33. mysql_fetch_row($result)){
  34.  
  35.  
  36. $i=$id;
  37.  
  38. $aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array('', '', ''));
  39. $no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
  40. $d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
  41.  
  42. If($no > $d_end)
  43. {
  44. echo "Nog tijd";
  45. }
  46. ElseIf($no < $d_end)
  47. {
  48. echo "Tijd verstreken";
  49. }
  50. Else
  51. {
  52. echo "Niet veel tijd meer";
  53. }
  54.  
  55. echo("
  56.  
  57. <td bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"20%\">$i</td>
  58. <td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$no</td>
  59. <td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$d_end</td>
  60. <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>
  61. <td bgcolor=\"#F4ECCC\"align=\"center\" width=\"20%\">file_get_contents('time.php?id=$id\');</td>
  62.  
  63. </tr>
  64. \n");
  65. }
  66.  
  67.  
  68.  
  69. ?>
  70.  
  71. </table>
  72.  
  73. </body>
  74. </html>


Ik ga de andere fouten niet oplossen.
Offline Gust - 23/09/2008 13:13
Avatar van Gust 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
Offline Kr4nKz1n - 23/09/2008 13:24
Avatar van Kr4nKz1n Onbekend En werkt het script?
Offline Gust - 23/09/2008 13:38 (laatste wijziging 23/09/2008 13:52)
Avatar van Gust 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é)

  1. <?php
  2. // variabelen initialiseren
  3. $username = "geheim";
  4. $password = "geheim";
  5. $host="localhost";
  6. $dbnaam="geheim";
  7. $fout = "FOUT: openen database mislukt";
  8.  
  9. setlocale(LC_ALL,'nl_NL.ISO8859-1');
  10.  
  11. $query="SELECT id, now, datum_eind FROM leveranciers ORDER BY id";
  12.  
  13. // ---- einde initialisatie
  14. $db=mysql_connect($host, $username, $password);
  15. mysql_select_db($dbnaam, $db) or die($fout);
  16. $result = mysql_query($query) or die (mysql_error());
  17. ?>
  18. <html>
  19. <head>
  20. </head>
  21.  
  22. <body>
  23. <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
  24. <table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
  25. <tr>
  26. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
  27. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
  28. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
  29. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">status</td>
  30. </tr>
  31. <tr class="tekst">
  32.  
  33. <?php
  34.  
  35. while (list($id, $now, $datum_eind) = mysql_fetch_row($result)){
  36.  
  37. $i=$id;
  38.  
  39. $aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array('', '', ''));
  40. $no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
  41. $d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
  42.  
  43.  
  44. echo("
  45. <td bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"25%\">$i</td>
  46. <td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$no</td>
  47. <td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$d_end</td>
  48. ");
  49. ?>
  50.  
  51. <td width=25%>
  52. <?php
  53.  
  54.  
  55. If ($no > $d_end)
  56. {
  57. echo "Nog tijd";
  58. }
  59.  
  60. ElseIf($no < $d_end)
  61. {
  62. echo "Tijd verstreken";
  63. }
  64. Else
  65. {
  66. echo "Niet veel tijd meer";
  67. }
  68.  
  69. ?>
  70.  
  71. </td>
  72.  
  73. </tr>
  74.  
  75.  
  76. </table>
  77. </font>
  78. </body>
  79. </html>
  80. <?php
  81.  
  82. }
  83. ?>
Offline Kr4nKz1n - 23/09/2008 14:01
Avatar van Kr4nKz1n Onbekend Dat komt omdat de } NA </html> staat.
Hij moet NA </tr>
Offline Gust - 23/09/2008 14:12
Avatar van Gust MySQL interesse Bedankt, nu werkt het.

Alleen door deze code komen er heel vreemde getallen ipv de datum:

  1. $aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array('', '', ''));
  2. $no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
  3. $d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);


Dus ik dacht, ik maak er het volgende van:
  1. $aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array('/', '/', '/'));
  2. $no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
  3. $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
Offline Kr4nKz1n - 23/09/2008 14:20
Avatar van Kr4nKz1n Onbekend oow wacht, doe dit

  1. $iDateNow = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
  2. $iDateDeadline = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);


En de If-Else statement
  1. //De eerste
  2. If($iDateNow > $iDateDeadline)
  3.  
  4. //En de tweede
  5. ElseIf($iDateNow < $iDateDeadline)


My bad
Offline Gust - 23/09/2008 14:28 (laatste wijziging 23/09/2008 15:11)
Avatar van Gust 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:

  1. <?php
  2.  
  3.  
  4. If ($no < $d_end)
  5. {
  6. echo "Nog tijd";
  7. }
  8.  
  9. ElseIf($no > $d_end)
  10. {
  11. echo "Tijd verstreken";
  12. }
  13.  
  14. Else
  15. {
  16. echo "Niet veel tijd meer";}
  17.  
  18. ?>

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:

  1. <?php
  2.  
  3.  
  4. If ($no > 31536000)
  5. {
  6. echo "Nog tijd genoeg";
  7. }
  8.  
  9. ElseIf($no < 31536000)
  10. {
  11. echo "Nog een jaar tijd";
  12. }
  13.  
  14. ElseIf($no < 3153600)
  15. {
  16. echo "Niet veel tijd meer";
  17. }
  18.  
  19. Else
  20. {
  21. echo "Tijd verstreken";}
  22.  
  23. ?>


Maar alles geeft nu dezelfde mededeling  
Offline Kr4nKz1n - 23/09/2008 15:18 (laatste wijziging 23/09/2008 15:22)
Avatar van Kr4nKz1n 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:
  1. // Als $now eruit ziet als: 2008-09-22 15:12:43, kan je dit scriptje toepassen
  2. $aDateTime = Explode(' ', $now);
  3. $aDateTime[0] = Explode('-', $aDateTime[0]);
  4. $aDateTime[1] = Explode(':', $aDateTime[1]);
  5. $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
Offline Gust - 23/09/2008 15:34
Avatar van Gust 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
Offline Kr4nKz1n - 23/09/2008 15:51 (laatste wijziging 23/09/2008 15:51)
Avatar van Kr4nKz1n Onbekend
  1. $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?
Offline Gust - 23/09/2008 16:58 (laatste wijziging 24/09/2008 10:35)
Avatar van Gust 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



  1. <?php
  2.  
  3.  
  4. if((!empty($no)) and curdate < ($d_end - 2419200))
  5. {
  6. echo "meer dan 1 maand tijd";
  7. }
  8.  
  9. elseif((!empty($no)) and curdate > ($d_end - 2419200))
  10. {
  11. echo "minder dan 1 maand tijd";
  12. }
  13.  
  14. elseif((!empty($no)) and curdate > ($d_end - 24192000))
  15. {
  16. echo "nog 10 maanden tijd";
  17. }
  18.  
  19. elseif((empty($no)) and curdate < ($d_end - 0))
  20. {
  21. echo "<p><b><font color=\"#FF0000\">te laat</font></b></p>";
  22. }
  23.  
  24. elseif(empty($no))
  25. {
  26. echo "invullen aub";
  27. }


Alleen krijg ik de foute mededelingen te zien tijdens tests, dus weet er iemand hoe dit wel moet zijn?
Offline Kr4nKz1n - 24/09/2008 12:07
Avatar van Kr4nKz1n Onbekend Wat is curdate?

heb je die gedefineerd (DEFINE())?

Vergeet je geen $
Offline Gust - 24/09/2008 12:57 (laatste wijziging 24/09/2008 15:01)
Avatar van Gust MySQL interesse Ik heb het nu zo gedefinieerd:

  1. $aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array(':', '-', ''));
  2. $no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
  3. $d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
  4. $curdate = time() + (7 * 24 * 60 * 60);
Offline Kr4nKz1n - 24/09/2008 15:17 (laatste wijziging 24/09/2008 15:32)
Avatar van Kr4nKz1n Onbekend Ja dan moet je natuurlijk wel
  1. if((!empty($no)) and $curdate < ($d_end - 2419200))

gebruiken.

Edit
  1. <?php
  2.  
  3. //Hoef je niks aan te veranderen
  4. Function DateToTime($sDate)
  5. {
  6. $aDateTime = Explode(' ', $sDate);
  7. $aDateTime[0] = Explode('-', $aDateTime[0]);
  8. $aDateTime[1] = Explode(':', $aDateTime[1]);
  9. return MkTime($aDateTime[1][0], $aDateTime[1][1], $aDateTime[1][2], $aDateTime[0][1], $aDateTime[0][2], $aDateTime[0][0]);
  10. }
  11.  
  12. // variabelen initialiseren
  13. $username = "geheim";
  14. $password = "geheim";
  15. $host="localhost";
  16. $dbnaam="geheim";
  17. $fout = "FOUT: openen database mislukt";
  18.  
  19. setlocale(LC_ALL,'nl_NL.ISO8859-1');
  20.  
  21. $query="SELECT id, now, datum_eind FROM leveranciers ORDER BY id";
  22.  
  23. // ---- einde initialisatie
  24. $db=mysql_connect($host, $username, $password);
  25. mysql_select_db($dbnaam, $db) or die($fout);
  26. $result = mysql_query($query) or die (mysql_error());
  27. ?>
  28. <html>
  29. <head>
  30. <title>Leveranciers</title>
  31. <body>
  32. <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
  33. <table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
  34. <tr>
  35. <td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
  36. <td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
  37. <td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
  38. <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>
  39. <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>
  40. </tr>
  41. <tr class="tekst">
  42. <?php while (list($id, $now, $datum_eind) =
  43. mysql_fetch_row($result)){
  44.  
  45.  
  46.  
  47.  
  48.  
  49. $i=$id;
  50. $no=$now;
  51. $d_end=$datum_eind;
  52.  
  53.  
  54. echo("
  55.  
  56. <td bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"20%\">$i</td>
  57. <td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$no</td>
  58. <td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$d_end</td>
  59. <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>
  60. <td bgcolor=\"#F4ECCC\"align=\"center\" width=\"20%\">");
  61.  
  62. If(DateToTime($no) > DateToTime($d_end))
  63. {
  64. echo "Deadline verstreken";
  65. }
  66. Else
  67. {
  68. echo "Deadline is nog even weg";
  69. }
  70.  
  71. echo("</td>
  72.  
  73. </tr>
  74. \n");
  75. }
  76.  
  77.  
  78.  
  79. ?>
  80.  
  81. </table>
  82.  
  83. </body>
  84. </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:
  1. If(DateToTime($no) > DateToTime($d_end)) // Wanneer $no LATER is dan $d_end
  2.  
  3. If(DateToTime($no) < DateToTime($d_end)) // Kun je uitrekenen hoelang je nog hebt
  4.  
  5. $HoelangNog = DateToTime($d_end) - DateToTime($no); // Zo lang nog in secondes. Dit kun je gebruiken in Date()
Offline Gust - 24/09/2008 16:12
Avatar van Gust 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).

  1. <?php
  2.  
  3. // variabelen initialiseren
  4. $username = "geheim";
  5. $password = "geheim";
  6. $host="localhost";
  7. $dbnaam="geheim";
  8. $fout = "FOUT: openen database mislukt";
  9.  
  10. $query="SELECT id, now, currentdate, datum_eind FROM leveranciers ORDER BY id";
  11.  
  12. // ---- einde initialisatie
  13. $db=mysql_connect($host, $username, $password);
  14. mysql_select_db($dbnaam, $db) or die($fout);
  15. $result = mysql_query($query) or die (mysql_error());
  16. ?>
  17. <html>
  18. <head>
  19. <title>Leveranciers</title>
  20. <style>
  21.  
  22. body {
  23.  
  24. background-color: #FFFFCC;
  25. }
  26.  
  27. .tekst_titel {
  28.  
  29. font-family:Verdana, Arial, Helvetica, sans-serif;
  30. font-size: 12px;
  31. font-weight: bold;
  32. color:#4E4110;
  33. }
  34.  
  35. .tekst_titel_klein {
  36.  
  37. font-family:Verdana, Arial, Helvetica, sans-serif;
  38. font-size: 11px;
  39. font-weight: bold;
  40. color:#4E4110;
  41. }
  42.  
  43. .tekst {
  44. font-family:Verdana, Arial, Helvetica, sans-serif;
  45. font-size: 11px;
  46. color:#000000;
  47.  
  48. }
  49.  
  50. .tekstveld {
  51. background-color: #FFEAB3;
  52. font-size: 11px;
  53. color: #2c4c64;
  54. font-family: verdana;
  55. border: 1px solid #2c4c64;
  56. </style>
  57. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
  58.  
  59. <body>
  60. <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
  61. <table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
  62. <tr>
  63. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
  64. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">datum van invoering</div></td>
  65. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
  66. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">status</td>
  67. </tr>
  68. <tr>
  69.  
  70. <?php
  71.  
  72. while (list($id, $now, $currentdate, $datum_eind) = mysql_fetch_row($result)){
  73.  
  74. $i=$id;
  75.  
  76. $aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array(':', '-', ''));
  77. $no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
  78. $d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
  79. $currentdate = time() + (7 * 24 * 60 * 60);
  80.  
  81.  
  82. echo("
  83. <td class=\"tekst\" bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"25%\">$i</td>
  84. <td class=\"tekst\" bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$no</td>
  85. <td class=\"tekst\" bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$d_end</td>
  86. ");
  87. ?>
  88.  
  89. <td class="tekst" width=25%>
  90. <?php
  91.  
  92. if((empty($no)) and $currentdate > ($d_end - 2419200))
  93. {
  94. echo "minder dan 1 maand";
  95. }
  96.  
  97. elseif((empty($no)) and $currentdate > ($d_end - 4838400))
  98. {
  99. echo "minder dan 2 maanden";
  100. }
  101.  
  102. elseif((empty($no)) and $currentdate > ($d_end - 14515200))
  103. {
  104. echo "minder dan 6 maanden";
  105. }
  106.  
  107. elseif((empty($no)) and $currentdate > ($d_end - 24192000))
  108. {
  109. echo "Tijd genoeg";
  110. }
  111.  
  112. elseif(!empty($no))
  113. {
  114. echo "ok";
  115. }
  116.  
  117. ?>
  118. </td>
  119. </tr>
  120. <?php
  121. }
  122. ?>
  123. </table>
  124. </font>
  125. </body>
  126. </html>
Offline Kr4nKz1n - 24/09/2008 16:33
Avatar van Kr4nKz1n Onbekend Heb je mijn code gezien van mijn vorige post?
Offline Gust - 24/09/2008 16:55
Avatar van Gust MySQL interesse Die grote? Ja, maar die gaf een hoop errors  
Offline Kr4nKz1n - 24/09/2008 17:36
Avatar van Kr4nKz1n Onbekend welke dan?
lijkt mij handig als je die geeft..l
Offline Gust - 25/09/2008 08:55
Avatar van Gust 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:

  1. return MkTime($aDateTime[1][0], $aDateTime[1][1], $aDateTime[1][2], $aDateTime[0][1], $aDateTime[0][2], $aDateTime[0][0]);
  2. }


Je kunt het zien op deze pagina
Offline Kr4nKz1n - 25/09/2008 09:03
Avatar van Kr4nKz1n 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...
Offline Gust - 25/09/2008 10:44 (laatste wijziging 25/09/2008 10:45)
Avatar van Gust MySQL interesse Dit is de database:
  1. CREATE TABLE `mijn_tabel` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `now` date DEFAULT NULL,
  4. `datum_eind` date DEFAULT '0000-00-00',
  5. `currentdate` time NOT NULL,
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;
  8.  
  9. #
  10. # Gegevens worden uitgevoerd voor tabel `mijn_tabel`
  11. #
  12.  
  13. INSERT INTO `mijn_tabel` VALUES (11, '2008-09-23', '2008-12-25', '00:00:00');
  14. INSERT INTO `mijn_tabel` VALUES (12, '2008-09-23', '2008-10-01', '00:00:00');
  15. INSERT INTO `mijn_tabel` VALUES (13, '2008-09-23', '2009-11-11', '00:00:00');
  16. INSERT INTO `mijn_tabel` VALUES (15, NULL, '2007-09-23', '00:00:00');
  17. INSERT INTO `mijn_tabel` VALUES (16, NULL, '2008-12-31', '00:00:00');
  18. INSERT INTO `mijn_tabel` VALUES (17, '2008-09-24', '1997-12-12', '00:00:00');
  19. 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
  1. <?php //Hoef je niks aan te veranderen
  2.  
  3. Function DateToTime($sDate)
  4. {
  5. $aDateTime = Explode(' ', $sDate);
  6. $aDateTime[0] = Explode('-', $aDateTime[0]);
  7. $aDateTime[1] = Explode(':', $aDateTime[1]);
  8. return MkTime($aDateTime[1][0], $aDateTime[1][1], $aDateTime[1][2], $aDateTime[0][1], $aDateTime[0][2], $aDateTime[0][0]);
  9. }
  10.  
  11. $username = "geheim";
  12. $password = "geheim";
  13. $host="localhost";
  14. $dbnaam="geheim";
  15. $fout = "FOUT: openen database mislukt";
  16.  
  17. setlocale(LC_ALL,'nl_NL.ISO8859-1');
  18.  
  19. $query="SELECT id, now, currentdate, datum_eind FROM mijn_tabel ORDER BY id";
  20.  
  21. // ---- einde initialisatie
  22. $db=mysql_connect($host, $username, $password);
  23. mysql_select_db($dbnaam, $db) or die($fout);
  24. $result = mysql_query($query) or die (mysql_error());
  25. ?>
  26. <html>
  27. <head>
  28. <title>boeken</title>
  29. <style>
  30.  
  31. body {
  32.  
  33. background-color: #FFFFCC;
  34. }
  35.  
  36. .tekst_titel {
  37.  
  38. font-family:Verdana, Arial, Helvetica, sans-serif;
  39. font-size: 12px;
  40. font-weight: bold;
  41. color:#4E4110;
  42. }
  43.  
  44. .tekst_titel_klein {
  45.  
  46. font-family:Verdana, Arial, Helvetica, sans-serif;
  47. font-size: 11px;
  48. font-weight: bold;
  49. color:#4E4110;
  50. }
  51.  
  52. .tekst {
  53. font-family:Verdana, Arial, Helvetica, sans-serif;
  54. font-size: 11px;
  55. color:#000000;
  56.  
  57. }
  58.  
  59. .tekstveld {
  60. background-color: #FFEAB3;
  61. font-size: 11px;
  62. color: #2c4c64;
  63. font-family: verdana;
  64. border: 1px solid #2c4c64;
  65. </style>
  66. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
  67.  
  68. <body>
  69. <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
  70. <table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
  71. <tr>
  72. <td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
  73. <td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">huidige tijd</div></td>
  74. <td width="20%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
  75. <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>
  76. <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>
  77. </tr>
  78. <tr class="tekst">
  79. <?php while (list($id, $now, $datum_eind) =
  80. mysql_fetch_row($result)){
  81.  
  82.  
  83.  
  84.  
  85.  
  86. $i=$id;
  87. $no=$now;
  88. $d_end=$datum_eind;
  89.  
  90.  
  91. echo("
  92.  
  93. <td bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"20%\">$i</td>
  94. <td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$no</td>
  95. <td bgcolor=\"#efe3b5\" class=\"tekst\" width=\"20%\">$d_end</td>
  96. <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>
  97. <td bgcolor=\"#F4ECCC\"align=\"center\" width=\"20%\">");
  98.  
  99. If(DateToTime($no) > DateToTime($d_end))
  100. {
  101. echo "Deadline verstreken";
  102. }
  103. Else
  104. {
  105. echo "Deadline is nog even weg";
  106. }
  107.  
  108. echo("</td>
  109.  
  110. </tr>
  111. \n");
  112. }
  113.  
  114.  
  115.  
  116. ?>
  117.  
  118. </table>
  119.  
  120. </body>
  121. </html>


De code zoals ik hem veranderd heb, en hier te bekijken:
  1. <?php
  2.  
  3. 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]);}
  4.  
  5. // variabelen initialiseren
  6. $username = "geheim";
  7. $password = "geheim";
  8. $host="localhost";
  9. $dbnaam="geheim";
  10. $fout = "FOUT: openen database mislukt";
  11.  
  12. $query="SELECT id, now, currentdate, datum_eind FROM mijn_tabel ORDER BY id";
  13.  
  14. // ---- einde initialisatie
  15. $db=mysql_connect($host, $username, $password);
  16. mysql_select_db($dbnaam, $db) or die($fout);
  17. $result = mysql_query($query) or die (mysql_error());
  18. ?>
  19. <html>
  20. <head>
  21. <title>Leveranciers</title>
  22. <style>
  23.  
  24. body {
  25.  
  26. background-color: #FFFFCC;
  27. }
  28.  
  29. .tekst_titel {
  30.  
  31. font-family:Verdana, Arial, Helvetica, sans-serif;
  32. font-size: 12px;
  33. font-weight: bold;
  34. color:#4E4110;
  35. }
  36.  
  37. .tekst_titel_klein {
  38.  
  39. font-family:Verdana, Arial, Helvetica, sans-serif;
  40. font-size: 11px;
  41. font-weight: bold;
  42. color:#4E4110;
  43. }
  44.  
  45. .tekst {
  46. font-family:Verdana, Arial, Helvetica, sans-serif;
  47. font-size: 11px;
  48. color:#000000;
  49.  
  50. }
  51.  
  52. .tekstveld {
  53. background-color: #FFEAB3;
  54. font-size: 11px;
  55. color: #2c4c64;
  56. font-family: verdana;
  57. border: 1px solid #2c4c64;
  58. </style>
  59. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
  60.  
  61. <body>
  62. <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
  63. <table width="90%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b">
  64. <tr>
  65. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
  66. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">datum van invoering</div></td>
  67. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">deadline</div></td>
  68. <td width="25%" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">status</td>
  69. </tr>
  70. <tr>
  71.  
  72. <?php
  73.  
  74. while (list($id, $now, $currentdate, $datum_eind) = mysql_fetch_row($result)){
  75.  
  76. $i=$id;
  77.  
  78. $aTimeReplace = Array('from' => Array(':', '-', ' '), 'to' => Array(':', '-', ''));
  79. $no = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $now);
  80. $d_end = Str_Replace($aTimeReplace['from'], $aTimeReplace['to'], $datum_eind);
  81. $currentdate = time() + (7 * 24 * 60 * 60);
  82.  
  83.  
  84. echo("
  85. <td class=\"tekst\" bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"25%\">$i</td>
  86. <td class=\"tekst\" bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$no</td>
  87. <td class=\"tekst\" bgcolor=\"#efe3b5\" class=\"tekst\" width=\"25%\">$d_end</td>
  88. ");
  89. ?>
  90.  
  91. <td class="tekst" width=25%>
  92. <?php
  93.  
  94.  
  95. if((empty($no)) and ($currentdate > ($d_end - 2419200)))
  96. {
  97. echo "minder dan 1 maand";
  98. }
  99.  
  100.  
  101. elseif((empty($no)) and ($currentdate > ($d_end - 4838400)))
  102. {
  103. echo "minder dan 2 maanden";
  104. }
  105.  
  106. elseif((empty($no)) and ($currentdate > ($d_end - 14515200)))
  107. {
  108. echo "minder dan 6 maanden";
  109. }
  110.  
  111. elseif((empty($no)) and ($currentdate > ($d_end - 24192000)))
  112. {
  113. echo "Tijd genoeg";
  114. }
  115.  
  116. elseif(!empty($no))
  117. {
  118. echo "ok";
  119. }
  120.  
  121.  
  122.  
  123.  
  124. ?></td>
  125. </tr>
  126. <?php
  127.  
  128. }
  129. ?>
  130. </table>
  131. </font>
  132.  
  133. </body>
  134. </html>
Offline Kr4nKz1n - 25/09/2008 10:59
Avatar van Kr4nKz1n 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?
Offline Gust - 25/09/2008 13:07 (laatste wijziging 25/09/2008 13:07)
Avatar van Gust 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?
Offline Kr4nKz1n - 25/09/2008 13:13 (laatste wijziging 25/09/2008 13:22)
Avatar van Kr4nKz1n Onbekend
  1. CREATE TABLE `mijn_tabel` (
  2. `id` int(11) NOT NULL auto_increment,
  3. `now` int(10) default NULL,
  4. `deadline` int(10) default NULL,
  5. PRIMARY KEY (`id`)
  6. ) 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

  1. $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
  1. 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.
Offline Gust - 25/09/2008 13:35 (laatste wijziging 25/09/2008 13:36)
Avatar van Gust 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
Offline Kr4nKz1n - 25/09/2008 13:42
Avatar van Kr4nKz1n 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?
Offline Gust - 25/09/2008 14:04
Avatar van Gust 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:
  1. if((empty($now)) and ($curdate < ($deadline - 2419200)))
  2. {
  3. echo "minder dan 1 maand";
  4. }

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.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.537s