If clause met OR en AND

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yannick Bogaert

Yannick Bogaert

19/06/2012 17:59:24
Quote Anchor link
Hallo allemaal,

ik loop vast op het volgende.

Heb een if statement gemaakt waar het de bedoeling is
dat hij een waarde geeft aan $tbp afhankelijk van 2 $_POST velden.

code ziet eruit als volgt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

if ($_POST['maand'] == 'May' && $_POST['foo'] == 'YBO' || 'FCL' ||'MST' || 'HVK' || 'ISL') $tbp = '152';
elseif ($_POST['maand'] == 'May' && $_POST['foo'] == 'EPI') $tbp = '68.40';
elseif ($_POST['maand'] == 'May' && $_POST['foo'] == 'CFE') $tbp = '91.20';

if ($_POST['maand'] == 'June' && $_POST['foo'] == 'YBO' || 'FCL' ||'MST' || 'HVK' || 'ISL') $tbp = '167';
elseif ($_POST['maand'] == 'June' && $_POST['foo'] == 'EPI') $tbp = '60.80';
elseif ($_POST['maand'] == 'June' && $_POST['foo'] == 'CFE') $tbp = '100.20';

?>


Ik heb voor elke 'maand' een andere statement gemaakt om het overzicht
beetje te kunnen behouden.

Nu als ik een echo doe van $tbp krijg ik altijd 167 gelijk of ik May of June neem
of een andere FOO...

Iemand een idee waar de fout zou kunnen liggen?

thanks,

Yannick
 
PHP hulp

PHP hulp

05/11/2024 12:01:12
 
Eddy E

Eddy E

19/06/2012 18:17:11
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if ($a == 'a' OR $b == 'a' OR $b == 'c' OR $b == 'd')


Kortom, je kan niet zomaar $b == 'a' OR 'b' doen.
Gebruik dan IN_ARRAY().

Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
if ($_POST['maand'] == 'May' && in_array($_POST['foo'],array('YBO', 'FCL', 'MST', 'HVK', 'ISL'))
    {
    $tbp = '152';'
}
 
Yannick Bogaert

Yannick Bogaert

19/06/2012 18:53:55
Quote Anchor link
@ Eddy Erkelens,
als ik de in_array gebruik heeft de $tbp geen waarde.
 
Wouter J

Wouter J

19/06/2012 18:59:12
Quote Anchor link
Yannick, echo dan eens $_POST['foo'] om te zien of die wel de waarde is die je verwacht, want het hoort gewoon te werken.
 
Yannick Bogaert

Yannick Bogaert

19/06/2012 19:10:36
Quote Anchor link
@ Wouter: de echo werkt wel
ergens nog een fout in de code?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if ($_POST['maand'] == 'May' && in_array($_POST['foo'],array('YBO', 'FCL', 'MST', 'HVK', 'ISL'))) $tbp = '152';
elseif ($_POST['maand'] == 'May' && $_POST['foo'] == 'EPI') $tbp = '68.40';
elseif ($_POST['maand'] == 'May' && $_POST['foo'] == 'CFE') $tbp = '91.20';


?>
Gewijzigd op 19/06/2012 19:18:22 door Yannick Bogaert
 
Wouter J

Wouter J

19/06/2012 19:18:18
Quote Anchor link
Nee, en bij mij werkt hij ook gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$_POST
['maand'] = 'May';

$_POST['foo'] = 'YBO';
if ($_POST['maand'] == 'May' && in_array($_POST['foo'],array('YBO', 'FCL', 'MST', 'HVK', 'ISL'))) $tbp = '152';
elseif ($_POST['maand'] == 'May' && $_POST['foo'] == 'EPI') $tbp = '68.40';
elseif ($_POST['maand'] == 'May' && $_POST['foo'] == 'CFE') $tbp = '91.20';


echo $tbp, '<br>'; // 152

$_POST['foo'] = 'CFE';
if ($_POST['maand'] == 'May' && in_array($_POST['foo'],array('YBO', 'FCL', 'MST', 'HVK', 'ISL'))) $tbp = '152';
elseif ($_POST['maand'] == 'May' && $_POST['foo'] == 'EPI') $tbp = '68.40';
elseif ($_POST['maand'] == 'May' && $_POST['foo'] == 'CFE') $tbp = '91.20';


echo $tbp; // 91.20
?>


PS: Het is beter om iets overzichtelijker te scripten (met enters en {}). Ook zijn getallen geen strings en horen er dus geen quotes omheen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.