Click here to Skip to main content
14,734,298 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi
Ive been having a very tedious problem lately where Im not able to display the topics in a forum category. I have been able to display all categories in a forum-style table but when I click on one of the categories I am getting the following error but I dont understand where in my code it is going wrong:

Notice: Undefined index: topic_cat in .../category.php on line 44

I want to get the topics that are linked with a specific category (topic_cat links to cat_id). So for cat_id=2, I want all topics that are assigned topic_cat=2.

Below is my code, can anyone see any problems? Note: this is the code that is currently being processed:

else
        {
            if(mysql_num_rows($topicResult) == 0)
            {
                echo 'There are no topics in this category yet.';
            }


And this is my code:

    else
    {
        //display category data
        while($row = mysql_fetch_assoc($result))
        {
            echo '<h2>Topics in ′' . $row['cat_name'] . '′ category</h2>';
        }
     
        //do a query for the topics
        $topicSql = "SELECT 
                    topic_id,
                    topic_subject,
                    topic_date,
                    topic_cat
                FROM
                    topics
                WHERE
 44-->      topic_cat = '" . mysql_real_escape_string($_GET['topic_cat']) . "'";
         
        $topicResult = mysql_query($topicSql);
         
        if(!$topicResult)
        {
            echo 'The topics could not be displayed, please try again later.';
        }
        else
        {
            if(mysql_num_rows($topicResult) == 0)
            {
                echo 'There are no topics in this category yet.';
            }
            else
            {
                //prepare the table
                echo '<table border="1">
                      <tr>
                        <th>Topic</th>
                        <th>Created at</th>
                      </tr>';
                     
                while($row = mysql_fetch_assoc($topicResult))
                {              
                    echo '<tr>';
                        echo '<td class="leftpart">';
                            echo '<h3><a href="topic.php?topic_id=' . $row['topic_id'] . '">' . $row['topic_subject'] . '</a><h3>';
                        echo '</td>';
                        echo '<td class="rightpart">';
                            echo date('d-m-Y', strtotime($row['topic_date']));
                        echo '</td>';
                    echo '</tr>';
                }
            }
        }
    }
}
Posted

1 solution

have a look on this if you still have a problem consult me plz.


<?php

//This page let display the list of topics of a category

include('config.php');

if(isset($_GET['parent']))

{

    $id = intval($_GET['parent']);

    $dn1 = mysql_fetch_array(mysql_query('select count(c.id) as nb1, c.name,count(t.id) as topics from categories as c left join topics as t on t.parent="'.$id.'" where c.id="'.$id.'" group by c.id'));

if($dn1['nb1']>0)
{
?>
<!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" />
        <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
        <title><?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?> - Forum</title>
    </head>
    <body>
        <div class="header">
            <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Forum" /></a>
        </div>
        <div class="content">
<?php

if(isset($_SESSION['username']))

{

$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));

$nb_new_pm = $nb_new_pm['nb_new_pm'];

?>
<div class="box">
    <div class="box_left">
        <a href="forum.php">Forum Index</a> &gt; <a href="list_topics.php?parent=<?php echo $id; ?>"><?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?></a>
    </div>
    <div class="box_right">
        <a href="list_pm.php">Your messages(<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Logout</a>)
    </div>
    <div class="clean"></div>
</div>
<?php

}

else

{

?>
<div class="box">
    <div class="box_left">
        <a href="forum.php">Forum Index</a> &gt; <a href="list_topics.php?parent=<?php echo $id; ?>"><?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?></a>
    </div>
    <div class="box_right">
        <a href="signup.php">Sign Up</a> - <a href="login.php">Login</a>
    </div>
    <div class="clean"></div>
</div>
<?php

}

if(isset($_SESSION['username']))

{

?>
    <a href="new_topic.php?parent=<?php echo $id; ?>" class="button">New Topic</a>
<?php

}

$dn2 = mysql_query('select t.id, t.title, t.authorid, u.username as author, count(r.id) as replies from topics as t left join topics as r on r.parent="'.$id.'" and r.id=t.id and r.id2!=1  left join users as u on u.id=t.authorid where t.parent="'.$id.'" and t.id2=1 group by t.id order by t.timestamp2 desc');

if(mysql_num_rows($dn2)>0)
{
?>
<table class="topics_table">
    <tr>
        <th class="forum_tops">Topic</th>
        <th class="forum_auth">Author</th>
        <th class="forum_nrep">Replies</th>
<?php

if(isset($_SESSION['username']) and $_SESSION['username']==$admin)

{

?>
        <th class="forum_act">Action</th>
<?php

}

?>
    </tr>
<?php

while($dnn2 = mysql_fetch_array($dn2))

{

?>
    <tr>
        <td class="forum_tops"><a href="read_topic.php?id=<?php echo $dnn2['id']; ?>"><?php echo htmlentities($dnn2['title'], ENT_QUOTES, 'UTF-8'); ?></a></td>
        <td><a href="profile.php?id=<?php echo $dnn2['authorid']; ?>"><?php echo htmlentities($dnn2['author'], ENT_QUOTES, 'UTF-8'); ?></a></td>
        <td><?php echo $dnn2['replies']; ?></td>
<?php

if(isset($_SESSION['username']) and $_SESSION['username']==$admin)

{

?>
        <td><a href="delete_topic.php?id=<?php echo $dnn2['id']; ?>"><img src="<?php echo $design; ?>/images/delete.png" alt="Delete" /></a></td>
<?php

}

?>
    </tr>
<?php

}

?>
</table>
<?php

}

else

{

?>
<div class="message">This category has no topic.</div>
<?php

}

if(isset($_SESSION['username']))

{

?>
    <a href="new_topic.php?parent=<?php echo $id; ?>" class="button">New Topic</a>
<?php

}

else

{

?>
<div class="box_login">
    <form action="login.php" method="post">
        <label for="username">Username</label><input type="text" name="username" id="username" /><br />
        <label for="password">Password</label><input type="password" name="password" id="password" /><br />
        <label for="memorize">Remember</label><input type="checkbox" name="memorize" id="memorize" value="yes" />
        <div class="center">
            <input type="submit" value="Login" /> <input type="button" onclick="javascript:document.location='signup.php';" value="Sign Up" />
        </div>
    </form>
</div>
<?php

}

?>
        </div>
        <div class="foot">1972-2013 &copy; MIMI.   All Rights Reserved</div>
    </body>
</html>
<?php

}

else

{

    echo '<h2>This category doesn\'t exist.</h2>';
}
}
else
{
    echo '<h2>The ID of the category you want to visit is not defined.</h2>';
}
?>
   
v2
Comments
jba1991 23-Jun-14 7:41am
   
Thanks but this doesnt solve the problem that I have.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)




CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900