The following code snippet outputs a table from a mySQL database.

In version 1, I am able to get alternating background cell colors.  However,
the output gives me the same post five times.

In version 2, I am able to receive five separate posts - which is what I'm
looking for - but I'd like to get alternating cell backgrounds.

Somewhere my syntax is failing me.

Any advice would be greatly appreciated.
Thank you.
Tony Ritter

// version 1:

<?php
//check for required info from the query string
if (!$_GET[topic_id]) {
   header("Location: topiclist.php");
   exit;
}

//connect to server and select database
$conn = mysql_connect("localhost", "root", "thisisapassword") or
die(mysql_error());
mysql_select_db("sitename",$conn)  or die(mysql_error());

//verify the topic exists
$verify_topic = "select topic_title from forum_topics where topic_id =
$_GET[topic_id]";
$verify_topic_res = mysql_query($verify_topic, $conn) or die(mysql_error());

if (mysql_num_rows($verify_topic_res) < 1) {
    //this topic does not exist
    $display_block = "<P><em>You have selected an invalid topic. Please <a
href=\"topiclist.php\">try again</a>.</em></p>";
} else {
    //get the topic title
   $topic_title = stripslashes(mysql_result($verify_topic_res,0,
'topic_title'));

   //gather the posts
   $get_posts = "select post_id, post_text, date_format(post_create_time,
'%b %e %Y at %r') as fmt_post_create_time, post_owner from forum_posts where
topic_id = $_GET[topic_id] order by post_create_time asc";
   $get_posts_res = mysql_query($get_posts,$conn) or die(mysql_error());

   //create the display string
   $display_block = "
   <P>Showing posts for the <strong>$topic_title</strong> topic:</p>

   <table width=100% cellpadding=3 cellspacing=1 border=1>
   <tr>
   <th bgcolor=\"#497fbf\"><font color=\"#ffffff\">AUTHOR</font>
   </th>
   <th bgcolor=\"#497fbf\"><font color=\"#ffffff\">POST</font></th>
   </tr>";

   while ($posts_info = mysql_fetch_array($get_posts_res)) {
       $post_id = $posts_info['post_id'];
       $post_text = nl2br(stripslashes($posts_info['post_text']));
       $post_create_time = $posts_info['fmt_post_create_time'];
       $post_owner = stripslashes($posts_info['post_owner']);

           $i = 0;
            while ($posts_info = @mysql_fetch_array($get_posts_res)) {    //
begin light-dark loop
            $row_class = (($i % 2) == 0) ? 'light' : 'dark';


$display_block .= "
      <tr>
       <td width=35% valign=top
class=\"$row_class\"><p>$post_owner<br>[$post_create_time]</td>
       <td width=65% valign=top class=\"$row_class\"><p>$post_text<br><br>
       <a href=\"replytopost.php?post_id=$post_id\"><img src=\"submit.gif\"
border=\"0\"></a></td>
       </tr>";
       $i++;

      }

}



  //close up the table
  $display_block .= "</table>";
}
?>
<html>
<head>
<style>
p {font-family:sans arial;
   font-size: 1.25em;
}

th {
   font-family:arial;
   font-size: .75em;\
   font-color:#ffffff;
}

td {border:1px solid #0000ff;
   font-family:arial;
   font-size:.5em;
   color: #2d73b9}

.light {
  color:#000;
  background-color:#eee;
}
.dark {
  color:#000;
  background-color:#aaa;
}
</style>
</head>
<body>
<title>Posts in Topic</title>
</head>
<body>
<h1>Posts in Topic</h1>
<?php print $display_block; ?>
</body>
</html>

.................


// version 2:

<?php
//check for required info from the query string
if (!$_GET[topic_id]) {
   header("Location: topiclist.php");
   exit;
}

//connect to server and select database
$conn = mysql_connect("localhost", "root", "thisisapassword") or
die(mysql_error());
mysql_select_db("sitename",$conn)  or die(mysql_error());

//verify the topic exists
$verify_topic = "select topic_title from forum_topics where topic_id =
$_GET[topic_id]";
$verify_topic_res = mysql_query($verify_topic, $conn) or die(mysql_error());

if (mysql_num_rows($verify_topic_res) < 1) {
    //this topic does not exist
    $display_block = "<P><em>You have selected an invalid topic. Please <a
href=\"topiclist.php\">try again</a>.</em></p>";
} else {
    //get the topic title
   $topic_title = stripslashes(mysql_result($verify_topic_res,0,
'topic_title'));

   //gather the posts
   $get_posts = "select post_id, post_text, date_format(post_create_time,
'%b %e %Y at %r') as fmt_post_create_time, post_owner from forum_posts where
topic_id = $_GET[topic_id] order by post_create_time asc";
   $get_posts_res = mysql_query($get_posts,$conn) or die(mysql_error());

   //create the display string
   $display_block = "
   <P>Showing posts for the <strong>$topic_title</strong> topic:</p>

   <table width=100% cellpadding=3 cellspacing=1 border=1>
   <tr>
   <th bgcolor=\"#497fbf\"><font color=\"#ffffff\">AUTHOR</font>
   </th>
   <th bgcolor=\"#497fbf\"><font color=\"#ffffff\">POST</font></th>
   </tr>";

   while ($posts_info = mysql_fetch_array($get_posts_res)) {
       $post_id = $posts_info['post_id'];
       $post_text = nl2br(stripslashes($posts_info['post_text']));
       $post_create_time = $posts_info['fmt_post_create_time'];
       $post_owner = stripslashes($posts_info['post_owner']);

       //add to display
       $display_block .= "
       <tr>
       <td width=35% valign=top><p>$post_owner<br>[$post_create_time]</td>
       <td width=65% valign=top><p>$post_text<br><br>
       <a href=\"replytopost.php?post_id=$post_id\"><strong>REPLY TO
POST</strong></a></td>
       </tr>";
   }

  //close up the table
  $display_block .= "</table>";
}
?>
<html>
<head>
<style>
p {font-family:sans arial;
   font-size: 1.25em;
}

th {
   font-family:arial;
   font-size: .75em;\
   font-color:#ffffff;
}

td {border:1px solid #0000ff;
   font-family:arial;
   font-size:.5em;
   color: #2d73b9}

.light {
  color:#000;
  background-color:#eee;
}
.dark {
  color:#000;
  background-color:#aaa;
}
</style>
</head>
<body>
<title>Posts in Topic</title>
</head>
<body>
<h1>Posts in Topic</h1>
<?php print $display_block; ?>
</body>
</html>




-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to