WordPress.org

Ready to get started?Download WordPress

Forums

table gets pushed to the bottom for no reason! (10 posts)

  1. drb05
    Member
    Posted 8 years ago #

    Can somebody help me out please? I tried to put this code in a new page:
    <?php
    // mysql_html_table
    // Written by: Michael P. Bourque (michael@mbourque.com)
    //
    // This very simple script will display your mysql table in an html table
    // with an option to do simple pagination like next and previous. If you
    // like this, then please send me an email to inspire me to do more with it.
    //
    // To use:
    // 1. Add this to any php page.
    // 2. Edit the variables below
    // 3. Upload to your server
    // 4. Point your browser to this file
    // 5. For pagination, add to the link (above) ?Pagesize=20
    // Example:
    // http://yourserver.domain.com/mysql_html_table.php?Pagesize=20

    // Set the variables for the database

    $Host = "localhost";
    $User = "user";
    $Password = "pwd";
    $DBName = "db"; // Database name
    $TableName = "wp_categories"; // Name of table to display

    // Do not edit below this line

    $Link = mysql_pconnect ($Host, $User, $Password);

    if ( $Pagesize ) {
    if( !$start ) $start = 1;
    pagination($start,$Link,$DBName,$TableName,$Pagesize);
    $PaginationQuery = "LIMIT " . $start . ", " . $Pagesize;
    }

    $Query = "SELECT * FROM $TableName " . $PaginationQuery;
    $Result = mysql_db_query ($DBName, $Query, $Link);

    // Create a table with headers.
    print ("<TABLE BORDER=1>\n");
    print ("<TR>\n");
    for ($i = 0; $i < mysql_num_fields($Result); $i++) {
    print "<TD>".mysql_field_name($Result, $i)."</TD>\n";
    }
    print ("</TR>\n");

    // Fetch the results from the database.
    while ($Row = mysql_fetch_array ($Result)) {
    print ("<TR>\n");
    for ($i = 0; $i < mysql_num_fields($Result); $i++) {
    print "<TD>$Row[$i]</TD>\n";
    }
    print ("</TR>\n");
    }
    print ("</TABLE>\n");

    mysql_close ($Link);

    function pagination($start,$Link, $DBName, $TableName, $Pagesize) {

    if ( !$Pagesize ) return;

    $Query = "SELECT count(*) as count FROM $TableName";
    $Result = mysql_query($Query);
    $row = mysql_fetch_array($Result);
    $numrows = $row['count'];
    if($start >= $Pagesize) {
    echo "<a href=\"" . $PHP_SELF . "?Pagesize=$Pagesize&start=" . ($start - $Pagesize) .
    "\">Previous | \n";
    } else {
    echo "Previous | \n";
    }
    if($numrows > ($start + $Pagesize)) {
    echo "<a href=\"" . $PHP_SELF . "?Pagesize=$Pagesize&start=" . ($start + $Pagesize) .
    "\">Next\n";
    } else {
    echo "Next | \n";
    }
    print "Page " . floor(($start / $Pagesize)+1);
    print " of " . ceil(($numrows / $Pagesize));
    print " | " . $numrows . " Records";

    }
    ?>

    To get some tablelist from a db. Table shows nice, but it is at the bottom of the page.

    Please help me.

    thanks,

    drb

  2. Yngwin
    Member
    Posted 8 years ago #

    Example page online?

  3. drb05
    Member
    Posted 8 years ago #

    sorry. the page is on a secure server. Can I help in any other way? Please?

  4. danwillis
    Member
    Posted 8 years ago #

    Are you able to determine if the resultant code is valid?

    Use the W3C validator to validate your HTML output.

  5. drb05
    Member
    Posted 8 years ago #

    Oh...it came out with 58 errors. especially that encompassed the table. Like:
    Error Line 124 column 14: there is no attribute "BORDER".
    <TABLE BORDER="1">
    You have used the attribute named above in your document, but the document type you are using does not support that attribute for this element. This error is often caused by incorrect use of the "Strict" document type with a document that uses frames (e.g. you must use the "Transitional" document type to get the "target" attribute), or by using vendor proprietary extensions such as "marginheight" (this is usually fixed by using CSS to achieve the desired effect instead).

    This error may also result if the element itself is not supported in the document type you are using, as an undefined element will have no supported attributes; in this case, see the element-undefined error message for further information.

    How to fix: check the spelling and case of the element and attribute, (Remember XHTML is all lower-case) and/or check that they are both allowed in the chosen document type, and/or use CSS instead of this attribute.

    Error Line 124 column 17: element "TABLE" undefined.
    <TABLE BORDER="1">
    You have used the element named above in your document, but the document type you are using does not define an element of that name. This error is often caused by:

    incorrect use of the "Strict" document type with a document that uses frames (e.g. you must use the "Frameset" document type to get the "<frameset>" element),
    by using vendor proprietary extensions such as "<spacer>" or "<marquee>" (this is usually fixed by using CSS to achieve the desired effect instead).
    by using upper-case tags in XHTML (in XHTML attributes and elements must be all lower-case.

    Error Line 125 column 3: element "TR" undefined.
    <TR>

    Error Line 126 column 3: element "TD" undefined.
    <TD>cat_ID</TD>

    Error Line 127 column 3: element "TD" undefined.
    <TD>cat_name</TD>

    Error Line 128 column 3: element "TD" undefined.

    Strangely, WP parts also had some errors-but they might be due to the template that I am using.

    Nevertheless, now I figured out it doesn't confirm to W3C standard and all my programs such excel to html and mysql to html (through php as my above example) all have the same problem.

    If I alter the codes like putting border="1", then php script quits functioning.

    any suggestions please?

  6. danwillis
    Member
    Posted 8 years ago #

    You'll find that some of the errors are only as a result of earlier ones, so it's best just to start at the top of the list and repair and revalidate each until you're clean.

    Try removing the 'border' attribute from the table tag altogether. If your table does need a border, add it using CSS.

    If your HTML and CSS skills need honing, or you just need some reference material, http://www.w3schools.com is a great resource.

  7. Michael Bishop

    Posted 8 years ago #

    Depending on the doc type declaration of your theme, the table may simply be invalid no matter what you attempt to do.

    Chances are it's being pushed down because it's not "fitting" within a div. You might look at the source, and see what the width is being set to, and then look at the containing div. If it's wider, you may want to create a special class that creates a horizontal scroll bar for overflow so things fit within the div.

  8. drb05
    Member
    Posted 8 years ago #

    I am using 'conundrum' wordpress theme from http://www.mikelothar.com

    THe page I created with above code- purely contains only that and nothing else.

    Part of the source code,with the table top:
    <div id="toplines">xl3</div>

    <table cellspacing="0" id="content">
    <tr>
    <td id="left">

    <div>

    <div id="post-43">
    <h2>xl3</h2>
    <div class="posts"> Dump a database to HTML tables
    <TABLE BORDER="1">
    <TR>
    <TD>cat_ID</TD>
    <TD>cat_name</TD>
    <TD>category_nicename</TD>
    <TD>category_description</TD>
    <TD>category_parent</TD>
    <TD>category_count</TD>
    </TR>
    <TR>
    <TD>1</TD>
    <TD>Miscellaneous</TD>
    <TD>misc</TD>
    ...........

    xl3 is the heading for the page.
    So I should check ID-toplines and ID-post (43 is the page number) in style.css .

    I changed the width of almost every div that I could find, still, the table stayed at the bottom.

    thanks,

    drb

  9. drb05
    Member
    Posted 8 years ago #

    Bumping up...
    Probably there might be different free php script that does the same but confines to web standards. Can anybody suggest me? or is there a better way to display tables from mysql in wordpress?

    Thanks
    drb

  10. 8wheels
    Member
    Posted 8 years ago #

    I'm probably way off base here and just barely qualified to answer, but I had the same issue when just inserting a table in a post by hand. The entire table dropped to the bottom and couldn't figure it out until I saw this thread:

    http://wordpress.org/support/topic/68837?replies=2#post-363226

    Where Kafkaesqui states: "I think your best option, until the WordPress devs fix this, is when inserting a table in a post place all of the table on a single line, editing out all line breaks between the opening <table> and closing </table> tags. This will keep WordPress from inserting break tags, which is the cause of what you're seeing."

    I removed all extra spaces & linebreaks and it now works like a charm. Even if this is the same issue it probably won't help with your plugin, but thought this might help figure out what's going on.

Topic Closed

This topic has been closed to new replies.

About this Topic

Tags

No tags yet.