login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Welke if-else notatie is juist?

Offline Gust - 07/10/2008 08:57
Avatar van GustMySQL interesse Welke notatie is juist?

if($deadline == 0 && $emailverwittiging== false)
if($deadline == 0 && $emailverwittiging== 'ja')
if($deadline == 0 && $emailverwittiging== "ja")
if($deadline == 0 AND $emailverwittiging== ja)
if($deadline == 0 AND $emailverwittiging== 1)

Als er geeneen juisy is, hoe zou het dan moeten? Ik vraag dit omdat ik er maar niet in slaag om een if/else met een AND werkend te maken

De $emailverwittiging zijn 2 radiobuttons, genoemd ja en nee
  1. <input type="radio" name="emailverwittiging" id="emailverwittiging" value="nee" <?php if($emailverw == "nee"){ echo("checked=\"checked\"");} ?> />
  2. <input name="emailverwittiging" type="radio" id="emailverwittiging" value="ja" <?php if($emailverw == "ja"){ echo("checked=\"checked\"");} ?> />


En $deadline is een datumveld die als ouput een getal geeft. Op basis van dat getal kan ik if else berekingen maken (indien deadline kliener is dan 50, dan...)

Maar welke notatie bovenaan is nu juist, als er één juist is? Of hoe zou het moeten?

22 antwoorden

Gesponsorde links
Offline marten - 07/10/2008 08:59 (laatste wijziging 07/10/2008 09:01)
Avatar van marten Beheerder
  1. if($deadline == 0 && $emailverwittiging === false) {
  2.  
  3. }


als je met == controleert op false controleert hij eigenlijk of de variabele 0 is. Wil je echt op false controleren (of op true) gebruik je ===.

Als het gewoon string is zoals bij je radio buttons gewoon controleren met == 'ja' of == 'nee'.

Let er wel op dat het een POST variabele is dus $_POST['emailverwittiging'] == 'ja'
Offline Kr4nKz1n - 07/10/2008 09:01
Avatar van Kr4nKz1n Onbekend Boolean 


En voor == 0 kan je ook Empty() gebruiken.

  1. If(Empty($deadline) && $emailverwittiging ===false)


Maar volgens mij kan ook, maar dat weet ik niet zeker.
  1. If(Empty($deadline) && !$emailverwittiging)
Offline Gust - 07/10/2008 09:22
Avatar van Gust MySQL interesse Zo heb ik het nu:

$deadl = $deadline
$emailver = $emailverwittiging

  1. if($deadl == 0 && $emailverw === true)
  2. {
  3. echo "deadline verstreken";
  4. $Name = "Mijn naam"; //senders name
  5. $email = "mijn emailadres"; //senders e-mail adress
  6. $recipient = "gmijn emailadres"; //recipient
  7. $mail_body = "De deadline is verstreken van bla bla bla"; //mail body
  8. $subject = "Deadline " . $lev . " verstreken"; //subject
  9. $header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields
  10. mail($recipient, $subject, $mail_body, $header); //mail command :)
  11. }
  12.  
  13. elseif($deadl == 0 && $emailverw === false)
  14. {
  15. echo "deadline verstreken";
  16. }
  17.  
  18. elseif($deadl >= 0)
  19. {
  20. echo "deadline verstreken";
  21. }
  22.  
  23. elseif($deadl >= -90)
  24. {
  25. echo "nog 3 maanden";
  26. }
  27.  
  28. elseif($deadl >= -180)
  29. {
  30. echo "nog 6 maanden";
  31.  
  32. }
  33.  
  34. else
  35. {
  36. echo "nog tijd genoeg";
  37. }
Offline Kr4nKz1n - 07/10/2008 09:37
Avatar van Kr4nKz1n Onbekend En dat werkt?
Offline Gust - 07/10/2008 09:46
Avatar van Gust MySQL interesse Ik krijg nu helemaal geen emails meer binnen, zowel als het op true of false staat
Offline Kr4nKz1n - 07/10/2008 09:53
Avatar van Kr4nKz1n Onbekend Controleer welke echo je ziet.
Je hebt nu 3 x achter elkaar dezelfde echo.

En waar haal je $emailverwittiging vandaan?
Offline Gust - 07/10/2008 10:18
Avatar van Gust MySQL interesse De $emailverwittiging zijn 2 radiobuttons, genoemd ja en nee
Offline marten - 07/10/2008 10:19 (laatste wijziging 07/10/2008 10:19)
Avatar van marten Beheerder
Citaat:
Let er wel op dat het een POST variabele is dus $_POST['emailverwittiging'] == 'ja'
Offline Gust - 07/10/2008 10:39 (laatste wijziging 07/10/2008 14:35)
Avatar van Gust MySQL interesse Rekening houdend met marten heb ik het nu zo gedaan (alle rommel van css en zo is er nu uitgehaald)

  1. <?php
  2. $username = "geheim";
  3. $password = "geheim";
  4. $host="localhost";
  5. $dbnaam="geheim";
  6. $fout = "FOUT: openen database mislukt";
  7.  
  8. $db=mysql_connect($host, $username, $password);
  9. mysql_select_db($dbnaam, $db) or die($fout);
  10.  
  11. $query="SELECT id, currentdate, DATEDIFF(NOW(), deadline), deadline, emailverwittiging FROM leveranciers order by deadline ASC";
  12. $result = mysql_query($query) or die (mysql_error());
  13. ?>
  14.  
  15. <html>
  16. <head>
  17. <body>
  18.  
  19. <table width="1240" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b"><tr>
  20. <td class="tabel" width="20" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
  21. <td width="100" valign="top" bgcolor="#E9D896" class="tabel"><div align="center" class="tekst_titel">Leverancier</div></td>
  22. <td width="120" colspan="2" valign="top" bgcolor="#E9D896" class="tabel"><div align="center" class="tekst_titel">Geupload</div></td>
  23. <td width="70" colspan="2" valign="top" bgcolor="#E9D896" class="tabel"><div align="center" class="tekst_titel">Status</div></td>
  24. </tr><tr class="tekst">
  25.  
  26. <?php
  27.  
  28. while (list($id, $currentdate, $deadline, $emailverwittiging) =
  29. mysql_fetch_row($result)){
  30.  
  31. $i=$id;
  32. $c_date=$currentdate;
  33. $deadl=$deadline;
  34. $emailverw=$emailverwittiging;
  35.  
  36. date("d.m.y");
  37.  
  38. echo("<td bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"20\">$i</td>"); ?>
  39.  
  40. <td bgcolor="#F4ECCC"class="tekst_deadline" align="center" width=\"30\">
  41.  
  42. <?php
  43.  
  44. if($deadl == 0 && $_POST['emailverwittiging'] == 'ja')
  45. {
  46. echo "deadline verstreken";
  47. $Name = "Gazelle World Wave"; //senders name
  48. $email = "info@gazelleworldwave.be"; //senders e-mail adress
  49. $recipient = "gustput@hotmail.com"; //recipient
  50. $mail_body = "De deadline is verstreken van leverancier " . $lev . " met als ID " . $i . ". Bezoek http://www.gazelleworldwave.be/leveranciers/bewerken.php?id=". $i ." om dit na te kijken aub"; //mail body
  51. $subject = "Deadline " . $lev . " verstreken"; //subject
  52. $header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields
  53. mail($recipient, $subject, $mail_body, $header); //mail command :)
  54. }
  55.  
  56. elseif($deadl == 0 && $_POST['emailverwittiging'] == 'nee')
  57. {
  58. echo "<img src=\"images/deadline_black.gif\">";
  59. }
  60.  
  61. elseif($deadl >= -0)
  62. {
  63. echo "<img src=\"images/deadline_black.gif\">";
  64. }
  65.  
  66. elseif($deadl >= -90)
  67. {
  68. echo "<img src=\"images/deadline_red.gif\">";
  69. }
  70.  
  71. elseif($deadl >= -180)
  72. {
  73. echo "<img src=\"images/deadline_orange.gif\">";
  74. }
  75.  
  76. else
  77. {
  78. echo "<img src=\"images/deadline_green.gif\">";
  79. }
  80.  
  81. ?>
  82.  
  83. </td>
  84.  
  85. <?php
  86.  
  87. <td bgcolor=\"#F4ECCC\"class=\"tekst_deadline\" align=\"center\" width=\"40\">$deadl</td>
  88.  
  89. ");
  90. ?>
  91. </tr>
  92. <?php
  93.  
  94. }
  95. ?>
  96. </table>
  97. </body>
  98. </html>


Een voorbeeld van dit script kun je hier bekijken. (log in met test - test)

Rechts zie je de kolom "status". Het zijn die cijfers waar ik mij op baseer. De icoontjes links ervan verschijnen dmv de if/else methode. Alleen wil ik nu nog éénmalig een email krijgen als er zo eentje op 0 staat

Hopelijk begrijpen jullie mijn code beter, nu jullie dit zien
Offline marten - 07/10/2008 10:43
Avatar van marten Beheerder Lappen code op www.plaatscode.be aub of gebruik de plaatscode tags.
Offline Gust - 07/10/2008 10:46 (laatste wijziging 07/10/2008 10:47)
Avatar van Gust MySQL interesse O ja, een voorbeeld van dit script kun je hier zien.

Rechts zie je de kolom "status". Het zijn die cijfers waar ik mij op baseer. De icoontjes links ervan verschijnen dmv de if/else methode. Alleen wil ik nu nog éénmalig een email krijgen als er zo eentje op 0 staat

Hopelijk begrijpen jullie mijn code beter, nu jullie dit zien
Offline NataschaV - 08/10/2008 07:50
Avatar van NataschaV PHP interesse Ik kan je wel precies de code geven, maar als je het zelf uitzoekt snap je ook beter wat je doet.
Php.net en W3school
Offline Gust - 08/10/2008 09:16
Avatar van Gust MySQL interesse Natascha,

Bedankt, maar ik heb al zoveel tijd verloren met dit proberen uit te zoeken op die websites, ik ben er al zoveel keer naar doorverwezen. Maar als beginnende php'er snap ik nauwelijks wat er staat. En dan weet ik beter wat ik doe als ik de code zie

Omdat dat maar niet lukt heb ik het op dit forum gepost, deze dient normaal om de mensen verder te helpen. Ik kan pas beter tot inzicht komen als ik de code zie, zodat ik weet hoe het werkt ener meer ga van begrijpen.

Terwijl als ik naar een website ga en overal code zie, dan weet ik niet eens waarvoor het gebruikt wordt. Begrijp je?
Offline marten - 08/10/2008 09:41 (laatste wijziging 08/10/2008 09:43)
Avatar van marten Beheerder Je kan natuurlijk ook eerst de basis gaan leren zodat je geen beginnende php'er meer bent.

Een heel belangrijk punt dat bijna alle beginnende php'ers vergeten is hoe ze fouten kunnen 'lezen' en informatie kunnen opzoeken.

Als je overal code ziet dan ga je bij lijn 1 beginnen. Snap je een functie niet. Kijk dan op www.php.net/<functienaam>. Dat is helemaal geen schande. Gevorderde php'ers doen dat ook regelmatig.

Meer over debuggen kan je hier vinden:
http://www.phpfreakz.nl/artikelen.php?aid=97

Wat ook bijdraagt aan het snel fouten opsporen is een deftige editor. Zelf gebruik ik Zend Studio. Deze geeft alle fouten al aan in de regelnummers. Sterker nog hij spoort door het hele project de fouten op en zet een rood kruisje voor de map / bestandsnaam waar de fout in staat.
Offline Kr4nKz1n - 08/10/2008 10:06
Avatar van Kr4nKz1n Onbekend
NataschaV schreef:
Ik kan je wel precies de code geven, maar als je het zelf uitzoekt snap je ook beter wat je doet.
Php.net en W3school
Na 11 reacties zo`n antwoord 

I`m loving it 
Offline marten - 08/10/2008 10:23
Avatar van marten Beheerder Blijf eens ontopic Kr4nKz1n. En bedenk eens een andere naam 
Offline Kr4nKz1n - 08/10/2008 10:26
Avatar van Kr4nKz1n Onbekend
marten schreef:
Je kan natuurlijk ook eerst de basis gaan leren zodat je geen beginnende php'er meer bent.
I agree 

Ik vraag me alleen af wie dat script wat je tot nu toe hebt, gemaakt heeft.
Offline Gust - 08/10/2008 11:12 (laatste wijziging 08/10/2008 11:12)
Avatar van Gust MySQL interesse Dat heb ik zelf gemaakt
Ik begrijp wel een klein beetje van php, maar nog niet zoveel. Ik kan php schrijven, lezen, aanpassen,... maar ik beschouw mijzelf nog als een beginnende php'er omdat ik zeker nog niet alles begrijp

NataschaV schreef:
Ik kan je wel precies de code geven, maar als je het zelf uitzoekt snap je ook beter wat je doet.
Php.net en W3school

Van zo'n antwoord krijg ik de stress op mijn lijf hé. Dat is zeggen zoals: "ik weet het maar ik zeg het lekker toch niet".
Dan kun je beter zwijgen
Offline marten - 08/10/2008 11:19
Avatar van marten Beheerder
Citaat:
Van zo'n antwoord krijg ik de stress op mijn lijf hé. Dat is zeggen zoals: "ik weet het maar ik zeg het lekker toch niet".
Dan kun je beter zwijgen


En toch heeft ze gelijk.

Nu gaan we weer ontopic.
Offline Gust - 08/10/2008 13:18
Avatar van Gust MySQL interesse Jongens toch, het heeft geen zin om hier iets te posten als ik het antwoord toch al meteen kon vinden op een andere website? Waarvoor dient dit forum dan?
Offline Kr4nKz1n - 08/10/2008 13:23
Avatar van Kr4nKz1n Onbekend Ga je nu in protest omdat je slecht geholpen wordt?

Het forum is om vragen te stellen waar je zelf niet uit komt, nadat je hebt gezocht.

Maar het jammere ervan is, is dat mensen een topic aanmaken met hun vraag, ik naar google ga en op de eerste pagina van de results het antwoord heb.

Dat is gewoon slecht. Ik snap dat mensen soms niet uit bepaalde dingen komen zoals o.a. reguliere expressies en arrays.
Offline Gust - 08/10/2008 14:08
Avatar van Gust MySQL interesse Daar heb je gelijk in. Voor de ene zijn reguliere expressies en arrays moeilijk en de rest makkelijk. Voor mij is hetgeen ik vraag ook heel moeilijk, da's heel relatief.

Ik reageer zo omdat ik er niet uitraak, het opzoek op google en op bepaalde websites, vervolgens er nog niet uitraak, het hier uiteindelijk vraag op dit forum, om als antwoord te krijgen dat ik op die websites moet zoeken

Je raakt al voor minder gefrustreerd hé
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.267s