Loop for If Else

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
jeaux
Forum Commoner
Posts: 25
Joined: Sun Aug 24, 2008 5:11 pm

Loop for If Else

Post by jeaux »

This code works but has to be a better way.
dateofloss is a unix time stamp.
This will query the DB and then populate the text boxes with the data and select the appropriate drop down options. I was thinking that 3 loops could clean the code up, but can't vision how to.

Code: Select all

 
<?php
$con = mysql_connect(EXCLUDED DATA);
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
 
mysql_select_db("cars1", $con);
 
$result = mysql_query("SELECT * FROM cars WHERE id = $_POST[carid]");
 
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="css/addcar.css" rel="stylesheet" type="text/css" />
</head>
<body>
<p><img src="Images/A-1 Banner.jpg" /></p>
<br />
   <?
 
while($row = mysql_fetch_array($result))
{
 
$dolmonth = date("m",$row['dateofloss']);
$dolday = date("d",$row['dateofloss']);
$dolyear = date("Y",$row['dateofloss']);
?>
<form action="editcaraction.php" method="post">
  <fieldset>
    <legend>Edit Car</legend>
    <p><label for="year">Year:</label>
      <input name="year" type="text" class = "textbox" value="
<?
   echo $row['year'];
?>
" />
    </p>
  <p><label for="make">Make:</label>
  <input name="make" type="text" class = "textbox" value="
<?
  echo $row['make'];
?>
" />
  </p>
  <p><label for="model">Model:</label>
    <input name="model" type="text" class = "textbox" value="
<?
  echo $row['model']; 
?>
" />
  </p>
  <p><label for="firstname">First name:</label>
  <input name="firstname" type="text" class = "textbox" value="
<?
  echo $row['firstname'];
?>
" />
  </p>
  <p><label for="lastname">Last name:</label>
  <input name="lastname" type="text" class = "textbox" value="
<?
  echo $row['lastname'];
?>
" />
  </p>
  <p><label for="phone">Phone:</label> 
    <input name="phone" type="text" class = "textbox" value="
<?
  echo $row['phone'];
?>
" />
  </p>
  <p><label for="address">Address:</label>
  <input name="address" type="text" class = "textbox" value="
<?
  echo $row['address'];
?>
" />
  </p>
  <p><label for="license">License:</label>
  <input name="license" type="text" class = "textbox" value="
<?
  echo $row['license'];
?>
" />
  </p>
  <p><label for="dateofloss">Date of Loss:</label>
  <select name="month" id="month">
<?
if ($dolmonth=="01")
  echo '<option value=\"01\" selected=\"selected\">Jan</option>';
  else
  echo "<option value=\"01\">Jan</option>";
if ($dolmonth=="02")
  echo "<option value=\"02\" selected=\"selected\">Feb</option>";
  else
  echo "<option value=\"02\">Feb</option>";
if ($dolmonth=="03")
  echo "<option value=\"03\" selected=\"selected\">Mar</option>";
  else
  echo "<option value=\"03\">Mar</option>";
if ($dolmonth=="04")
  echo "<option value=\"04\" selected=\"selected\">Apr</option>";
  else
  echo "<option value=\"04\">Apr</option>";
if ($dolmonth=="05")
  echo "<option value=\"05\" selected=\"selected\">May</option>";
  else
  echo "<option value=\"05\">May</option>";
if ($dolmonth=="06")
  echo "<option value=\"06\" selected=\"selected\">Jun</option>";
  else
  echo "<option value=\"06\">Jun</option>";
if ($dolmonth=="07")
  echo "<option value=\"07\" selected=\"selected\">Jul</option>";
  else
  echo "<option value=\"07\">Jul</option>";
if ($dolmonth=="08")
  echo "<option value=\"08\" selected=\"selected\">Aug</option>";
  else
  echo "<option value=\"08\">Aug</option>";
if ($dolmonth=="09")
  echo "<option value=\"09\" selected=\"selected\">Sep</option>";
  else
  echo "<option value=\"09\">Sep</option>";
if ($dolmonth=="10")
  echo "<option value=\"10\" selected=\"selected\">Oct</option>";
  else
  echo "<option value=\"10\">Oct</option>";
if ($dolmonth=="11")
  echo "<option value=\"11\" selected=\"selected\">Nov</option>";
  else
  echo "<option value=\"11\">Nov</option>";
if ($dolmonth=="12")
  echo "<option value=\"12\" selected=\"selected\">Dec</option>";
  else
  echo "<option value=\"12\">Dec</option>";
?>
  </select>
    <select name="day" id="day">
<?
if ($dolday=="01")
  echo '<option selected=\"selected\">1</option>';
  else
  echo "<option>1</option>";
if ($dolday=="02")
  echo '<option selected=\"selected\">2</option>';
  else
  echo "<option>2</option>";
if ($dolday=="03")
  echo '<option selected=\"selected\">3</option>';
  else
  echo "<option>3</option>";
if ($dolday=="04")
  echo '<option selected=\"selected\">4</option>';
  else
  echo "<option>4</option>";
if ($dolday=="05")
  echo '<option selected=\"selected\">5</option>';
  else
  echo "<option>5</option>";
if ($dolday=="06")
  echo '<option selected=\"selected\">6</option>';
  else
  echo "<option>6</option>";
if ($dolday=="07")
  echo '<option selected=\"selected\">7</option>';
  else
  echo "<option>7</option>";
if ($dolday=="08")
  echo '<option selected=\"selected\">8</option>';
  else
  echo "<option>8</option>";
if ($dolday=="09")
  echo '<option selected=\"selected\">9</option>';
  else
  echo "<option>9</option>";
if ($dolday=="10")
  echo '<option selected=\"selected\">10</option>';
  else
  echo "<option>10</option>";
if ($dolday=="11")
  echo '<option selected=\"selected\">11</option>';
  else
  echo "<option>11</option>";
if ($dolday=="12")
  echo '<option selected=\"selected\">12</option>';
  else
  echo "<option>12</option>";
if ($dolday=="13")
  echo '<option selected=\"selected\">13</option>';
  else
  echo "<option>13</option>";
if ($dolday=="14")
  echo '<option selected=\"selected\">14</option>';
  else
  echo "<option>14</option>";
if ($dolday=="15")
  echo '<option selected=\"selected\">15</option>';
  else
  echo "<option>15</option>";
if ($dolday=="16")
  echo '<option selected=\"selected\">16</option>';
  else
  echo "<option>16</option>";
if ($dolday=="17")
  echo '<option selected=\"selected\">17</option>';
  else
  echo "<option>17</option>";
if ($dolday=="18")
  echo '<option selected=\"selected\">18</option>';
  else
  echo "<option>2</option>";
if ($dolday=="03")
  echo '<option selected=\"selected\">18</option>';
  else
  echo "<option>18</option>";
if ($dolday=="19")
  echo '<option selected=\"selected\">19</option>';
  else
  echo "<option>19</option>";
if ($dolday=="20")
  echo '<option selected=\"selected\">20</option>';
  else
  echo "<option>20</option>";
if ($dolday=="21")
  echo '<option selected=\"selected\">21</option>';
  else
  echo "<option>21</option>";
if ($dolday=="22")
  echo '<option selected=\"selected\">22</option>';
  else
  echo "<option>22</option>";
if ($dolday=="23")
  echo '<option selected=\"selected\">23</option>';
  else
  echo "<option>23</option>";
if ($dolday=="24")
  echo '<option selected=\"selected\">24</option>';
  else
  echo "<option>24</option>";
if ($dolday=="25")
  echo '<option selected=\"selected\">25</option>';
  else
  echo "<option>25</option>";
if ($dolday=="26")
  echo '<option selected=\"selected\">26</option>';
  else
  echo "<option>26</option>";
if ($dolday=="27")
  echo '<option selected=\"selected\">27</option>';
  else
  echo "<option>27</option>";
if ($dolday=="28")
  echo '<option selected=\"selected\">28</option>';
  else
  echo "<option>28</option>";
if ($dolday=="29")
  echo '<option selected=\"selected\">29</option>';
  else
  echo "<option>29</option>";
if ($dolday=="30")
  echo '<option selected=\"selected\">30</option>';
  else
  echo "<option>30</option>";
if ($dolday=="31")
  echo '<option selected=\"selected\">31</option>';
  else
  echo "<option>31</option>";
?>
 
    </select> 
    <select name="year" id="year">
<?
if ($dolyear=="2009")
  echo '<option selected=\"selected\">2009</option>';
  else
  echo "<option>2009</option>";
if ($dolyear=="2010")
  echo '<option selected=\"selected\">2010</option>';
  else
  echo "<option>2010</option>";
?>
    </select>
  </label>
  </p>
  <p class="submit"><input type="submit" value="Edit Car" />
  </p>
  </fieldset>
</form>
</p>
<?
}
?>
</body>
</html>
 
Any ideas?

Thanks,
Joe
AlanG
Forum Contributor
Posts: 136
Joined: Wed Jun 10, 2009 1:03 am

Re: Loop for If Else

Post by AlanG »

I see what your trying to do but i'm not going to sift through your code. What a mess! But I do admire you for knowing your code is bad and seeing how to improve it.

Below are 2 functions. The first is used to create a list of months, the second a number list (which is what dates and years are).

Code: Select all

function month_select($name='month',$head='',$value=-1) {
        $months = array('January','February','March','April','May','June','July','August','September','October','November','December');
 
        $output = '<select name="'.$name.'">';
 
        if(!empty($head))
            $output .= '<option value="">'.$head.'</option>'."\n";
 
        for($i=0;$i<12;$i++) {
            ($i == $value) ? $selected = ' selected="selected"' : $selected = '';
            $output .= '<option value="'.($i+1).'"'.$selected.'>'.$months[$i].'</option>'."\n";
        }
 
        $output .= '</select>';
 
        return $output;
    }
Use it like this:
$months = month_select(null,'-- Select a month --',4); // Will select April as default

Code: Select all

function number_select($name='num',$head='',$start=0,$end=10,$value=0) {
        $output = '<select name="'.$name.'">';
 
        if(!empty($head))
            $output .= '<option value="">'.$head.'</option>'."\n";
 
        for($i=$start;$i<=$end;$i++) {
            ($i == $value) ? $selected = ' selected="selected"' : $selected = '';
            $output .= '<option value="'.$i.'"'.$selected.'>'.$i.'</option>'."\n";
        }
 
        $output .= '</select>';
 
        return $output;
    }
Use it the same way as before, like this:
$dates = number_select('dates','-- Select a date --',1,31);
$years = number_select('years','-- Select a year --',2009,2010,2004); // Selects year 2004 by default
stratbeans
Forum Newbie
Posts: 12
Joined: Sat Aug 29, 2009 2:23 am

Re: Loop for If Else

Post by stratbeans »

Nice solution AlanG
You can also consider using Smarty template engine to take care of the (V)iew of the MVC pardigm.
Its pretty easy to understand and use. In case you are already aware of it then ignore this message.
Regardless, here is the link which has more info on smarty http://www.smarty.net/
There are many inbuilt and custom functions that are pretty powerful. For instance you can make use of {html_options} tag.
Do let me know if you have happen to use it !
jeaux
Forum Commoner
Posts: 25
Joined: Sun Aug 24, 2008 5:11 pm

Re: Loop for If Else

Post by jeaux »

AlanG that was the nicest backhanded compliment I could have expected lmao. Thanks for taking the time to work it out. If I ever get it working will post the finished code.

Thanks,
Joe
Post Reply