Forum Moderators: coopster
----------------------------------
empty ¦ results ok
----------------------------------
results ok ¦ results ok
----------------------------------
results ok ¦ results ok
----------------------------------
results ok ¦ results ok
----------------------------------
results ok ¦ results ok
----------------------------------
here is my code
<?php
include_once ("dbase/mysql_connect.php");
?>
<table>
<?php
$limit = 25;
$query_count = "SELECT * FROM Rb_fiftyMl_bottle";
$result_count = mysql_query($query_count);
$totalrows = mysql_num_rows($result_count);
if(empty($page)){
$page = 1;
}
$limitvalue = $page * $limit - ($limit);
$query = "SELECT * FROM Rb_fiftyMl_bottle LIMIT $limitvalue, $limit";
$result = mysql_query($query) or die("Error: " . mysql_error());
if(mysql_num_rows($result) == 0){
echo("Nothing to Display!");
}
$bgcolor = "#CCCCCC"; // light gray
echo("<center><table>");
while($row = mysql_fetch_array($result)){
if ($bgcolor == "#CCCCCC"){
$bgcolor = "#FFF4CA";
}else{
$bgcolor = "#CCCCCC";
$product_name = $row['product_name'];
$product_id = $row['product_id'];
}
echo("<tr bgcolor=".$bgcolor.">");
echo("<td><a href=\"products_details.php?product_id=$product_id\">$product_name</a></td>");
echo("<td>");
echo($row["product_price"]);
echo("</td></tr>");
}
echo("</table>");
if($page!= 1){
$pageprev = $page-1;
echo("<a href=\"$PHP_SELF?page=$pageprev\">←</a> ");
}else{
echo("← ");
}
$numofpages = $totalrows / $limit;
for($i = 1; $i <= $numofpages; $i++){
if($i == $page){
echo($i." ");
}else{
echo("<a href=\"$PHP_SELF?page=$i\">$i</a> ");
}
}
if(($totalrows % $limit)!= 0){
if($i == $page){
echo($i." ");
}else{
echo("<a href=\"$PHP_SELF?page=$i\">$i</a> ");
}
}
if(($totalrows - ($limit * $page)) >= 0){
$pagenext = $page+1;
echo("<a href=\"$PHP_SELF?page=$pagenext\">→</a>");
}else{
echo("→");
}
mysql_free_result($result);
?>
</table>
Your problem lies within the following code:
while($row = mysql_fetch_array($result)){
if ($bgcolor == "#CCCCCC"){
$bgcolor = "#FFF4CA";
}else{
$bgcolor = "#CCCCCC";
$product_name = $row['product_name'];
$product_id = $row['product_id'];
}echo("<tr bgcolor=".$bgcolor.">");
echo("<td><a href=\"products_details.php?product_id=$product_id\">$product_name</a></td>");
echo("<td>");
echo($row["product_price"]);
echo("</td></tr>");
}
You initially set $bgcolor to "#CCCCCC" which makes the if statement true, therefore not giving $product_name and $product_id any values (both of which are printed out to the screen later). To fix this, you have to change the way you set the background color, or you have to include the variable declarations in that statement also. This is what i would do:
$count = 0;
while($row = mysql_fetch_array($result)){
if (($count % 2) == 0){
$bgcolor = "#FFF4CA";
}else{
$bgcolor = "#CCCCCC";
}$product_name = $row['product_name'];
$product_id = $row['product_id'];echo("<tr bgcolor=".$bgcolor.">");
echo("<td><a href=\"products_details.php?product_id=$product_id\">$product_name</a></td>");
echo("<td>");
echo($row["product_price"]);
echo("</td></tr>");
$count++;
}
good luck!
eelix