If clause met OR en AND
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)
1
2
3
4
5
6
7
8
9
10
11
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';
?>
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
Kortom, je kan niet zomaar $b == 'a' OR 'b' doen.
Gebruik dan IN_ARRAY().
Dus:
als ik de in_array gebruik heeft de $tbp geen waarde.
Yannick, echo dan eens $_POST['foo'] om te zien of die wel de waarde is die je verwacht, want het hoort gewoon te werken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
?>
$_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.