Help - Search - Members - Calendar
Full Version: Problem with correct placing of tables posted with php - sql
HTMLHelp Forums > Programming > Server-side Scripting
sanoj96
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.
CharlesEF
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.
sanoj96
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?
CharlesEF
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.
sanoj96
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..
sanoj96
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
sanoj96
This might also have been moved more over to a css category ..
sanoj96
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.)
CharlesEF
I just checked http://solitudegaming.com/forum again and it seems to be working correctly. What problem do you still have?
sanoj96
i still see the fotter above the table.. do you see the same?
IPB Image
sanoj96
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..
CharlesEF
The reason is that you forgot to close the table. After you echo the last </tr> you then need to echo </table> also.
sanoj96
Thank you, i should have found that my self rolleyes.gif

CharlesEF
Sometimes a different set of eyes is needed. Glad it helped.
pandy
Or a validator. happy.gif
CharlesEF
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2017 Invision Power Services, Inc.