Welcome Guest, Not a member yet? Register   Sign In
Redefining a variable
#1

[eluser]epseix[/eluser]
Right, I have another question - this time about defining variables within a foreach loop.

Before I moved over to Codeigniter framework, the following query worked:

Code:
<?php if ($year != date('Y', strtotime($row['datetime']))):
   $year = date('Y', strtotime($row['datetime'])); ?>
   <h2>&lt;?=$year?&gt;</h2>
  &lt;?php endif;?&gt;
   <h3>&lt;?=$month?&gt;</h3>
   <h4>&lt;?=$day?&gt;</h4>

Now that I'm using Codeigniter, there's 2 issues I can see - 1) the foreach loop and 2) the view file should be purely html. Plus, even with the following, the variable year is undefined and a php error flags up...

Code:
&lt;?php if (isset($future)):
   foreach ($future as $row):?&gt;
  if ($year != date('Y', strtotime($row->datetime))):
   $year = date('Y', strtotime($row->datetime));?&gt;
   <h2>&lt;?=$year?&gt;</h2>
  &lt;?php endif;?&gt;
   <h3>&lt;?=date('F', strtotime($row->datetime))?&gt;</h3>
   <h4>&lt;?=date('D, jS', strtotime($row->datetime))?&gt;</h4>
   &lt;? endforeach;?&gt;
  &lt;?php endif;?&gt;

To clearly explain what I'm trying to achieve; I want to generate a result like so:

Code:
<h2>2013</h2>
<h3>Jan</h3>
<h4>Sun, 2nd</h4>
<h3>Feb</h3>
<h4>Sun, 3rd</h4>

As opposed to:

Code:
<h2>2013</h2>
<h3>Jan</h3>
<h4>Sun, 2nd</h4>
<h2>2013</h2> ** This line needs to go etc. **
<h3>Feb</h3>
<h4>Sun, 3rd</h4>

Any help is greatly appreciated!
#2

[eluser]SmokeyJoe[/eluser]
Change
Code:
&lt;?php if (isset($future)):
   foreach ($future as $row):?&gt;
  if ($year != date('Y', strtotime($row->datetime))):
   $year = date('Y', strtotime($row->datetime));?&gt;
   <h2>&lt;?=$year?&gt;</h2>
  &lt;?php endif;?&gt;
   <h3>&lt;?=date('F', strtotime($row->datetime))?&gt;</h3>
   <h4>&lt;?=date('D, jS', strtotime($row->datetime))?&gt;</h4>
   &lt;? endforeach;?&gt;
  &lt;?php endif;?&gt;

to

Code:
&lt;?php if (isset($future)):
   foreach ($future as $row):
  if ($year != date('Y', strtotime($row->datetime))):
   $year = date('Y', strtotime($row->datetime));?&gt;
   <h2>&lt;?=$year?&gt;</h2>
  &lt;?php endif;?&gt;
   <h3>&lt;?=date('F', strtotime($row->datetime))?&gt;</h3>
   <h4>&lt;?=date('D, jS', strtotime($row->datetime))?&gt;</h4>
   &lt;?php endforeach;?&gt;
  &lt;?php endif;?&gt;




Theme © iAndrew 2016 - Forum software by © MyBB