Im sure the following code can be writen better maybe cutting the amount of code in half?
Code: Select all
<?php
$manufacturer = addslashes($_REQUEST['manufacturer']);
$choice = addslashes($_REQUEST['choice']);
$search = addslashes($_REQUEST['search']);
$under = addslashes($_REQUEST['under']);
$over = addslashes($_REQUEST['over']);
?>
<table style="margin: 2px; border: 1px solid #000000;" width="99%" align="center" cellpadding="0" cellspacing="0">
<tr>
<th colspan="2">Search for vehicle</th>
</tr>
<tr><br />
<td align="center"><br />
<form name="manufacturer" action="../index.php?pages=sh_cars" method="post">Show
<select name="manufacturer" class="input-box"><?php $sql = mysql_query("SELECT * FROM manufacturer ORDER BY make ASC"); while ($row = mysql_fetch_array($sql)) { ?>
<option <?php echo $manufacturer==$row['make'] ? 'selected' : ''?>><?php echo $row['make'] ?></option><?php } ?>
</select>
<input type="submit" name="Submit" value="Submit" />
</form>
</td>
<td align="center"><br />
<form name="choice" action="../index.php?pages=sh_cars" method="post">Or search
<select name="choice" class="input-box"><?php if ($_SESSION['user_level'] == 3) { ?>
<option <?php echo $choice=='Code' ? 'selected' : ''?> value="Code">Number Plate</option><?php } ?>
<option <?php echo $choice=='Colour' ? 'selected' : ''?>>Colour</option>
<option <?php echo $choice=='Fuel' ? 'selected' : ''?>>Fuel</option>
<option <?php echo $choice=='Model' ? 'selected' : ''?>>Model</option>
<option <?php echo $choice=='Transmission' ? 'selected' : ''?>>Transmission</option>
<option <?php echo $choice=='Year' ? 'selected' : ''?>>Year</option>
</select>for
<input name="search" type="text" size="18" class="input-box" value="<?php echo $search; ?>" />
<input type="submit" name="Submit" value="Submit" />
</form>
</td>
</tr>
</table>
<?php
if ($_SESSION['user_level'] == 3) {
$availability = "('available' , 'sold')";
}else{
$availability = "('available')"; }
if (!isset($_GET['page'])) { $page = 1; }else{ $page = $_GET['page']; }
$max_results = 1;
$numcols = 4;
$numcolsprinted = 0;
$from = (($page * $max_results) - $max_results);
if (isset($_REQUEST['search']) && trim($search) !== "") {
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM cars WHERE availability IN $availability AND (".$choice." LIKE('".$search."'))"),0);
$total_pages = ceil($total_results / $max_results);
$sql = "SELECT c.id, c.year, c.manufacturer, c.model, c.availability, p.photo_filename, m.make
FROM cars as c
JOIN manufacturer as m ON m.id = c.manufacturer
LEFT JOIN car_images as p ON p.car_id = c.id
WHERE c.availability IN $availability AND (".$choice." LIKE('".$search."'))
GROUP BY c.id
LIMIT $from, $max_results";
}elseif (isset($_REQUEST['manufacturer']) && trim($manufacturer) !== "") {
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM cars as c JOIN manufacturer as m ON m.id = c.manufacturer WHERE availability IN $availability AND make ='".$manufacturer."'"),0);
$total_pages = ceil($total_results / $max_results);
$sql = "SELECT c.id, c.year, c.manufacturer, c.model, c.availability, p.photo_filename, m.make
FROM cars as c
JOIN manufacturer as m ON m.id = c.manufacturer
LEFT JOIN car_images as p ON p.car_id = c.id
WHERE c.availability IN $availability AND m.make='".$manufacturer."'
GROUP BY c.id
LIMIT $from, $max_results";
}elseif (isset($_REQUEST['under'])) {
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM cars WHERE availability IN $availability AND price <= '".$under."'"),0);
$total_pages = ceil($total_results / $max_results);
$sql = "SELECT c.id, c.year, c.manufacturer, c.model, c.availability, p.photo_filename, m.make
FROM cars as c
JOIN manufacturer as m ON m.id = c.manufacturer
LEFT JOIN car_images as p ON p.car_id = c.id
WHERE availability IN $availability AND price <= '".$under."'
GROUP BY c.id
LIMIT $from, $max_results";
}elseif (isset($_REQUEST['over'])) {
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM cars WHERE availability IN $availability AND price > '".$over."'"),0);
$total_pages = ceil($total_results / $max_results);
$sql = "SELECT c.id, c.year, c.manufacturer, c.model, c.availability, p.photo_filename, m.make
FROM cars as c
JOIN manufacturer as m ON m.id = c.manufacturer
LEFT JOIN car_images as p ON p.car_id = c.id
WHERE availability IN $availability AND price > '".$over."'
GROUP BY c.id
LIMIT $from, $max_results";
}else{
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM cars WHERE availability IN $availability"),0);
$total_pages = ceil($total_results / $max_results);
$sql = "SELECT c.id, c.year, c.manufacturer, c.model, c.availability, p.photo_filename, m.make
FROM cars as c
JOIN manufacturer as m ON m.id = c.manufacturer
LEFT JOIN car_images as p ON p.car_id = c.id
WHERE c.availability IN $availability
GROUP BY c.id ORDER BY c.id DESC
LIMIT $from, $max_results";
}
?>
<table style="margin: 2px; border: 1px solid #000000;" width="99%" align="center" cellpadding="0" cellspacing="0">
<tr>
<th>Listed Cars </th>
</tr>
<tr>
<td align="center">
<?php
if ($_SESSION['user_level'] == 3) {
echo '<br /><center><a href="../index.php?pages=add_cars">ADD NEW</a></center>';
}
echo '<br /><center><b>'.$total_results.'</b> cars matching your search | ';
echo 'Displaying Page <b>'.$page.'</b> of <b>'.$total_pages.'</b><br /><br />';
echo '<a href="../index.php?pages=sh_cars">SHOW ALL CARS</a><br /><br />';
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
?>
<table border="1" bordercolor="FFFFFF" cellspacing="5" cellpadding="0" align="center">
<?php
if ($num_rows > 0 ) {
while($row = mysql_fetch_array($result)){
if($row['photo_filename'] == 0) {
$picture = 'No Images<br />';
} else {
$picture = '<a href="/index.php?pages=sh_car&id='.$row['id'].'"><img src="../'.$images_dir.'/tb_'.$row['photo_filename'].'" border="1"></a><br />';
}
if ($numcolsprinted == $numcols) {
?>
<tr>
<?php
$numcolsprinted = 0;
}
?>
<td style="border:1 dashed #999999;" width="130" height="130" align="center" valign="bottom"><br />
<?php echo $picture; ?><br />
<b><?php echo ValidateOutput($row['year']); ?></b><br />
<?php echo ValidateOutput($row['make']); ?> <?php echo ValidateOutput($row['model']); ?></b><br />
<br />
<a href="../index.php?pages=sh_car&id=<?php echo $row['id']; ?>">Read more...</a><br /><br />
<?php
if ($_SESSION['user_level'] == 3) {
echo '<a href="/index.php?pages=add_cars&id='.$row['id'].'&edit=edit">edit</a> - <a href="/index.php?pages=del_cars&del_all&id='.$row['id'].'">delete</a><br /><br />';
}
?>
</td>
<?php
$numcolsprinted++;
}
$colstobalance = $numcols - $numcolsprinted;
for ($i=1; $i<=$colstobalance; $i++) {
}
?>
</tr>
</table>
<?php
}else{
echo '<center>No results found</center>';
}
echo '<br /><center>';
if ($page > 1) {
$prev = ($page - 1);
echo "<a href=\"../index.php?pages=sh_cars&page=$prev&manufacturer=$manufacturer&choice=$choice&search=$search\">Previous</a> | ";
}
for ($i = 1; $i <= $total_pages; $i++) {
if (($page) == $i) {
echo "[$i] ";
}else{
echo "<a href=\"../index.php?pages=sh_cars&page=$i&manufacturer=$manufacturer&choice=$choice&search=$search\">$i</a> ";
}
}
if ($page < $total_pages) {
$next = ($page + 1);
echo " | <a href=\"../index.php?pages=sh_cars&page=$next&manufacturer=$manufacturer&choice=$choice&search=$search\">Next</a>";
}
echo "</center><br />";
?>
</td>
</tr>
</table>Thanks