Welke if-else notatie is juist?
Gust - 07/10/2008 08:57
MySQL 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
<input type="radio" name="emailverwittiging" id="emailverwittiging" value="nee" <?php if($emailverw == "nee"){ echo("checked=\"checked\"");} ?> />
<input name="emailverwittiging" type="radio" id="emailverwittiging" value="ja" <?php if($emailverw == "ja"){ echo("checked=\"checked\"");} ?> />
<input type="radio" name="emailverwittiging" id="emailverwittiging" value="nee"
<?php if ( $emailverw == "nee" ) { echo ( "checked=\" checked\" " ) ; } ?> />
<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
marten - 07/10/2008 08:59 (laatste wijziging 07/10/2008 09:01)
Beheerder
if($deadline == 0 && $emailverwittiging === false) {
}
if ( $deadline == 0 && $emailverwittiging === false ) {
}
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'
Kr4nKz1n - 07/10/2008 09:01
Onbekend
Boolean
En voor == 0 kan je ook Empty() gebruiken.
If(Empty($deadline) && $emailverwittiging ===false)
If ( Empty ( $deadline ) && $emailverwittiging === false )
Maar volgens mij kan ook, maar dat weet ik niet zeker.
If(Empty($deadline) && !$emailverwittiging)
If ( Empty ( $deadline ) && ! $emailverwittiging )
Gust - 07/10/2008 09:22
MySQL interesse
Zo heb ik het nu:
$deadl = $deadline
$emailver = $emailverwittiging
if($deadl == 0 && $emailverw === true)
{
echo "deadline verstreken";
$Name = "Mijn naam"; //senders name
$email = "mijn emailadres"; //senders e-mail adress
$recipient = "gmijn emailadres"; //recipient
$mail_body = "De deadline is verstreken van bla bla bla"; //mail body
$subject = "Deadline " . $lev . " verstreken"; //subject
$header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields
mail($recipient, $subject, $mail_body, $header); //mail command :)
}
elseif($deadl == 0 && $emailverw === false)
{
echo "deadline verstreken";
}
elseif($deadl >= 0)
{
echo "deadline verstreken";
}
elseif($deadl >= -90)
{
echo "nog 3 maanden";
}
elseif($deadl >= -180)
{
echo "nog 6 maanden";
}
else
{
echo "nog tijd genoeg";
}
if ( $deadl == 0 && $emailverw === true )
{
echo "deadline verstreken" ; $Name = "Mijn naam" ; //senders name
$email = "mijn emailadres" ; //senders e-mail adress
$recipient = "gmijn emailadres" ; //recipient
$mail_body = "De deadline is verstreken van bla bla bla" ; //mail body
$subject = "Deadline " . $lev . " verstreken" ; //subject
$header = "From: " . $Name . " <" . $email . ">\r \n " ; //optional headerfields
mail ( $recipient , $subject , $mail_body , $header ) ; //mail command :) }
elseif ( $deadl == 0 && $emailverw === false )
{
echo "deadline verstreken" ; }
elseif ( $deadl >= 0 )
{
echo "deadline verstreken" ; }
elseif ( $deadl >= - 90 )
{
}
elseif ( $deadl >= - 180 )
{
}
else
{
}
Kr4nKz1n - 07/10/2008 09:37
Onbekend
En dat werkt?
Gust - 07/10/2008 09:46
MySQL interesse
Ik krijg nu helemaal geen emails meer binnen, zowel als het op true of false staat
Kr4nKz1n - 07/10/2008 09:53
Onbekend
Controleer welke echo je ziet.
Je hebt nu 3 x achter elkaar dezelfde echo.
En waar haal je $emailverwittiging vandaan?
Gust - 07/10/2008 10:18
MySQL interesse
De $emailverwittiging zijn 2 radiobuttons, genoemd ja en nee
marten - 07/10/2008 10:19 (laatste wijziging 07/10/2008 10:19)
Beheerder
Citaat:
Let er wel op dat het een POST variabele is dus $_POST['emailverwittiging'] == 'ja'
Gust - 07/10/2008 10:39 (laatste wijziging 07/10/2008 14:35)
MySQL interesse
Rekening houdend met marten heb ik het nu zo gedaan (alle rommel van css en zo is er nu uitgehaald)
<?php
$username = "geheim";
$password = "geheim";
$host="localhost";
$dbnaam="geheim";
$fout = "FOUT: openen database mislukt";
$db=mysql_connect($host, $username, $password);
mysql_select_db($dbnaam, $db) or die($fout);
$query="SELECT id, currentdate, DATEDIFF(NOW(), deadline), deadline, emailverwittiging FROM leveranciers order by deadline ASC";
$result = mysql_query($query) or die (mysql_error());
?>
<html>
<head>
<body>
<table width="1240" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b"><tr>
<td class="tabel" width="20" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="100" valign="top" bgcolor="#E9D896" class="tabel"><div align="center" class="tekst_titel">Leverancier</div></td>
<td width="120" colspan="2" valign="top" bgcolor="#E9D896" class="tabel"><div align="center" class="tekst_titel">Geupload</div></td>
<td width="70" colspan="2" valign="top" bgcolor="#E9D896" class="tabel"><div align="center" class="tekst_titel">Status</div></td>
</tr><tr class="tekst">
<?php
while (list($id, $currentdate, $deadline, $emailverwittiging) =
mysql_fetch_row($result)){
$i=$id;
$c_date=$currentdate;
$deadl=$deadline;
$emailverw=$emailverwittiging;
date("d.m.y");
echo("<td bgcolor=\"#F4ECCC\" class=\"tekst\" align=\"center\" width=\"20\">$i</td>"); ?>
<td bgcolor="#F4ECCC"class="tekst_deadline" align="center" width=\"30\">
<?php
if($deadl == 0 && $_POST['emailverwittiging'] == 'ja')
{
echo "deadline verstreken";
$Name = "Gazelle World Wave"; //senders name
$email = "info@gazelleworldwave.be"; //senders e-mail adress
$recipient = "gustput@hotmail.com"; //recipient
$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
$subject = "Deadline " . $lev . " verstreken"; //subject
$header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields
mail($recipient, $subject, $mail_body, $header); //mail command :)
}
elseif($deadl == 0 && $_POST['emailverwittiging'] == 'nee')
{
echo "<img src=\"images/deadline_black.gif\">";
}
elseif($deadl >= -0)
{
echo "<img src=\"images/deadline_black.gif\">";
}
elseif($deadl >= -90)
{
echo "<img src=\"images/deadline_red.gif\">";
}
elseif($deadl >= -180)
{
echo "<img src=\"images/deadline_orange.gif\">";
}
else
{
echo "<img src=\"images/deadline_green.gif\">";
}
?>
</td>
<?php
echo("
<td bgcolor=\"#F4ECCC\"class=\"tekst_deadline\" align=\"center\" width=\"40\">$deadl</td>
");
?>
</tr>
<?php
}
?>
</table>
</body>
</html>
<?php
$username = "geheim" ;
$password = "geheim" ;
$host = "localhost" ;
$dbnaam = "geheim" ;
$fout = "FOUT: openen database mislukt" ;
$query = "SELECT id, currentdate, DATEDIFF(NOW(), deadline), deadline, emailverwittiging FROM leveranciers order by deadline ASC" ;
?>
<html>
<head>
<body>
<table width="1240" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#decb7b"><tr>
<td class="tabel" width="20" valign="top" bgcolor="#E9D896"><div align="center" class="tekst_titel">ID</div></td>
<td width="100" valign="top" bgcolor="#E9D896" class="tabel"><div align="center" class="tekst_titel">Leverancier</div></td>
<td width="120" colspan="2" valign="top" bgcolor="#E9D896" class="tabel"><div align="center" class="tekst_titel">Geupload</div></td>
<td width="70" colspan="2" valign="top" bgcolor="#E9D896" class="tabel"><div align="center" class="tekst_titel">Status</div></td>
</tr><tr class="tekst">
<?php
while ( list ( $id , $currentdate , $deadline , $emailverwittiging ) =
$i = $id ;
$c_date = $currentdate ;
$deadl = $deadline ;
$emailverw = $emailverwittiging ;
echo ( "<td bgcolor=\" #F4ECCC\" class=\" tekst\" align=\" center\" width=\" 20\" >$i </td>" ) ; ?>
<td bgcolor="#F4ECCC"class="tekst_deadline" align="center" width=\"30\">
<?php
if ( $deadl == 0 && $_POST [ 'emailverwittiging' ] == 'ja' )
{
echo "deadline verstreken" ; $Name = "Gazelle World Wave" ; //senders name
$email = "info@gazelleworldwave.be" ; //senders e-mail adress
$recipient = "gustput@hotmail.com" ; //recipient
$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
$subject = "Deadline " . $lev . " verstreken" ; //subject
$header = "From: " . $Name . " <" . $email . ">\r \n " ; //optional headerfields
mail ( $recipient , $subject , $mail_body , $header ) ; //mail command :) }
elseif ( $deadl == 0 && $_POST [ 'emailverwittiging' ] == 'nee' )
{
echo "<img src=\" images/deadline_black.gif\" >" ; }
elseif ( $deadl >= - 0 )
{
echo "<img src=\" images/deadline_black.gif\" >" ; }
elseif ( $deadl >= - 90 )
{
echo "<img src=\" images/deadline_red.gif\" >" ; }
elseif ( $deadl >= - 180 )
{
echo "<img src=\" images/deadline_orange.gif\" >" ; }
else
{
echo "<img src=\" images/deadline_green.gif\" >" ; }
?>
</td>
<?php
<td bgcolor=\" #F4ECCC\" class=\" tekst_deadline\" align=\" center\" width=\" 40\" >$deadl </td>
" ) ;
?>
</tr>
<?php
}
?>
</table>
</body>
</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
marten - 07/10/2008 10:43
Beheerder
Lappen code op www.plaatscode.be aub of gebruik de plaatscode tags.
Gust - 07/10/2008 10:46 (laatste wijziging 07/10/2008 10:47)
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
NataschaV - 08/10/2008 07:50
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
Gust - 08/10/2008 09:16
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?
marten - 08/10/2008 09:41 (laatste wijziging 08/10/2008 09:43)
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.
Kr4nKz1n - 08/10/2008 10:06
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
Kr4nKz1n - 08/10/2008 10:26
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.
Gust - 08/10/2008 11:12 (laatste wijziging 08/10/2008 11:12)
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
marten - 08/10/2008 11:19
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.
Gust - 08/10/2008 13:18
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?
Kr4nKz1n - 08/10/2008 13:23
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.
Gust - 08/10/2008 14:08
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 .