Printable Version of Topic

Click here to view this topic in its original format

HTMLHelp Forums _ Server-side Scripting _ Problem with correct placing of tables posted with php - sql

Posted by: sanoj96 Mar 12 2017, 01:28 PM

Hello,

So i have been messing around a bit now with one of my websites, and have ran into a problem i cant see to find out.
So i am asking for some help..


So when i try to post a table from php with information from sql it places at the wrong area..


This are the following files are in use in this action.

index.php

CODE

<?php
//create_cat.php
include 'connect.php';
include 'header.php';

$sql = "SELECT
            categories.cat_id,
            categories.cat_name,
            categories.cat_description,
            COUNT(topics.topic_id) AS topics
        FROM
            categories
        LEFT JOIN
            topics
        ON
            topics.topic_id = categories.cat_id
        GROUP BY
            categories.cat_name, categories.cat_description, categories.cat_id";

$result = mysql_query($sql);

if(!$result)
{
    echo 'The categories could not be displayed, please try again later.';
}
else
{
    if(mysql_num_rows($result) == 0)
    {
        echo 'No categories defined yet.';
    }
    else
    {
        //prepare the table
        echo '<table class="table table-striped">
              <tr>
                <th>Category</th>
                <th>Last topic</th>
              </tr>';    
            
        while($row = mysql_fetch_assoc($result))
        {                
            echo '<tr>';
                echo '<td class="leftpart">';
                    echo '<h3><a href="category.php?id=' . $row['cat_id'] . '">' . $row['cat_name'] . '</a></h3>' . $row['cat_description'];
                echo '</td>';
                echo '<td class="rightpart">';
                
                //fetch last topic for each cat
                    $topicsql = "SELECT
                                    topic_id,
                                    topic_subject,
                                    topic_date,
                                    topic_cat
                                FROM
                                    topics
                                WHERE
                                    topic_cat = " . $row['cat_id'] . "
                                ORDER BY
                                    topic_date
                                DESC
                                LIMIT
                                    1";
                                
                    $topicsresult = mysql_query($topicsql);
                
                    if(!$topicsresult)
                    {
                        echo 'Last topic could not be displayed.';
                    }
                    else
                    {
                        if(mysql_num_rows($topicsresult) == 0)
                        {
                            echo 'no topics';
                        }
                        else
                        {
                            while($topicrow = mysql_fetch_assoc($topicsresult))
                            echo '<a href="topic.php?id=' . $topicrow['topic_id'] . '">' . $topicrow['topic_subject'] . '</a> at ' . date('d-m-Y', strtotime($topicrow['topic_date']));
                        }
                    }
                echo '</td>';
            echo '</tr>';
        }
    }
}
?>

<?php
include 'footer.php';
?>


The problem is that everything that is a table is under the footer (only on index.php & if you click on a topic / Category. but if i click on the post it is above the footer.)


Link to site:
http://solitudegaming.com/forum

Hope anyone can help me with this issue.

Thanks.

Posted by: CharlesEF Mar 12 2017, 03:02 PM

Your posted code doesn't show it but there is an extra '<body>' tag placed before the <table>. Also, I see you're using mysql_* commands in your code. mysql_* commands are deprecated and removed from PHP v7. You should use prepared statements with mysqli_* commands or use PDO.

Posted by: sanoj96 Mar 12 2017, 03:31 PM

Oh, thanks.

I know it's the part with mysql_* and PDO. It is running on an kind of old system atm. Working on a new script for it atm, but first i will fix the themeing and so on smile.gif

How can i fix the issue about the "invisible" <body> tag?

Posted by: CharlesEF Mar 12 2017, 03:43 PM

The extra <body> tag may not be in your PHP code at all. It might be in the actual HTML file that runs the PHP script. Check there first.

Posted by: sanoj96 Mar 12 2017, 03:55 PM

Yea, figured that out tongue.gif found one extra body tag inside the header.php file. removed the one that is not needed, and saved the file. Same error..

Posted by: sanoj96 Mar 12 2017, 03:57 PM

This page works like it should: http://solitudegaming.com/forum/topic.php?id=3
But the rest dosent.

Checking the code on both of them too see if i am missing a div or something

Posted by: sanoj96 Mar 12 2017, 04:03 PM

This might also have been moved more over to a css category ..

Posted by: sanoj96 Mar 12 2017, 04:14 PM

Tried to past the raw html from the footer.php file into the index.php file (at the bottom) still same issue. This is now a styling problem (or have always been one.)

Posted by: CharlesEF Mar 12 2017, 04:16 PM

I just checked http://solitudegaming.com/forum again and it seems to be working correctly. What problem do you still have?

Posted by: sanoj96 Mar 12 2017, 05:16 PM

i still see the fotter above the table.. do you see the same?
IPB Image

Posted by: sanoj96 Mar 12 2017, 05:18 PM

It should be looking like this:

IPB Image

idk why that page work, but not the other pages..

They are basicly the same but gather info from different sql bases..

Posted by: CharlesEF Mar 12 2017, 07:40 PM

The reason is that you forgot to close the table. After you echo the last </tr> you then need to echo </table> also.

Posted by: sanoj96 Mar 13 2017, 02:26 PM

Thank you, i should have found that my self rolleyes.gif


Posted by: CharlesEF Mar 13 2017, 03:50 PM

Sometimes a different set of eyes is needed. Glad it helped.

Posted by: pandy Mar 13 2017, 06:18 PM

Or a validator. happy.gif

Posted by: CharlesEF Mar 13 2017, 07:38 PM

QUOTE(pandy @ Mar 13 2017, 06:18 PM) *

Or a validator. happy.gif
Or even, 'View source', on the page generated by the PHP code. smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)