Darren_Stanley Posted March 16, 2014 Share Posted March 16, 2014 I have a working IF statement, but then when I add a 'ELSE IF' to this this 'overwrites' my IF. I will try to explain more here. For the purpose of this example, getNewLine() returns 6. $noOfLines = 58. $rotaDate = 5th Jan 2014 $line = from 1 to 58. My initial IF statement gives correct output (adding 1 week to each line):- //This function determines and inserts the custom column data. function customData($line){ global $rotaDate,$noOfLines; if($line >= getNewLine()){ $weeks=($line-getNewLine()); $modifier=$weeks.' weeks'; $rotaDate->modify($modifier); return $rotaDate ->format("jS F Y"); } 1 2 3 4 5 6 05-Jan-14 7 12-Jan-14 8 19-Jan-14 9 26-Jan-14 10 02-Feb-14 ... ... ... ... 56 21-Dec-14 57 28-Dec-14 58 04-Jan-15 So far, So good.. But now, I need to continue from 4-Jan line 58, back up to line 1, 1week later (11-Jan) down to line 5 of which would be 8th Feb. i.e. all lines Less than getNewLine() // which is 6 To do this I have added ELSE IF:- /* else if($line<getNewLine()) { $weeks=($line+$noOfLines-getNewLine()); $modifier=$weeks.' weeks'; $rotaDate->modify($modifier); return $rotaDate ->format("jS F Y"); } */ This the outputs from line 1 to line 5 correctly, But it continues to overwrite the dates down to line 58. It needs to stop at line 6. 1 11-Jan-15 2 18-Jan-15 3 25-Jan-15 4 01-Feb-15 5 08-Feb-15 6 15-Feb-15 7 22-Feb-15 8 01-Mar-15 9 08-Mar-15 10 15-Mar-15 11 22-Mar-15 ... ... ... ... down to line 58... Any ideas why this is happening and how I may stop this please? Link to comment https://forums.phpfreaks.com/topic/287018-help-with-else-if-issue/ Share on other sites More sharing options...
jairathnem Posted March 17, 2014 Share Posted March 17, 2014 Look at the sample below taken from PHP manual page: <?php /* Incorrect Method: */ if($a > $b): echo $a." is greater than ".$b; else if($a == $b): // Will not compile. echo "The above line causes a parse error."; endif; /* Correct Method: */ if($a > $b): echo $a." is greater than ".$b; elseif($a == $b): // Note the combination of the words. echo $a." equals ".$b; else: echo $a." is neither greater than or equal to ".$b; endif; ?> Link to comment https://forums.phpfreaks.com/topic/287018-help-with-else-if-issue/#findComment-1472859 Share on other sites More sharing options...
Darren_Stanley Posted March 17, 2014 Author Share Posted March 17, 2014 Unfortunately, this made no difference. I still have this problem. Link to comment https://forums.phpfreaks.com/topic/287018-help-with-else-if-issue/#findComment-1472905 Share on other sites More sharing options...
Darren_Stanley Posted March 17, 2014 Author Share Posted March 17, 2014 I have modified the IFELSE statement in order to debug to return $Line if <6. with an un-expected outcome. elseif($line<getNewLine()) { $weeks=($line+$noOfLines-getNewLine()); $modifier=$weeks.' weeks'; $rotaDate->modify($modifier); return $line;//$rotaDate ->format("jS F Y"); } Only the first line gets the $line number from the "if else" statement. The remaining lines less than 6, get the modified $rotaDate, each time this function is called. Link to comment https://forums.phpfreaks.com/topic/287018-help-with-else-if-issue/#findComment-1472921 Share on other sites More sharing options...
jairathnem Posted March 18, 2014 Share Posted March 18, 2014 Look at the example carefully. You missed: 1. Colon at end of if statement and at end of elseif statement. 2. You missed the endif; statement at the last. Link to comment https://forums.phpfreaks.com/topic/287018-help-with-else-if-issue/#findComment-1472948 Share on other sites More sharing options...
cyberRobot Posted March 18, 2014 Share Posted March 18, 2014 You missed: 1. Colon at end of if statement and at end of elseif statement. 2. You missed the endif; statement at the last. It sounds like you're describing the alternate syntax for if statements: http://www.php.net/manual/en/control-structures.alternative-syntax.php You can also use curly brackets: http://www.php.net/manual/en/control-structures.elseif.php Link to comment https://forums.phpfreaks.com/topic/287018-help-with-else-if-issue/#findComment-1472967 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.