Page 1 of 1

Echo output problem...

Posted: Mon Dec 14, 2009 4:19 pm
by Brian07002
Hi,

I am having a problem aligning text under images both text and images are echoed from a mysql db. I've been working on this for a couple of weeks already, and it's just brought me back to square one...Can't seem to get it no matter what I do. :banghead:

Here's a screenshot of what I have currently

Image

Html output Code begins on line 198

Here's the code:

Code: Select all

 
<html>
<head><title>Get Linked Up Index Page</title></head>
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<body>
 
<?php
 
/////////////////////////////////////////////// Background Color Changer Code //////////////////////////////////////////////
 
$background_color = "#D5FFD5"; // default WHITE background
switch(date(“md”)) {
     
     case 0101:
       // New Years Day background color (light green) on 01/01
       $background_color = "#D5FFD5";
     break;
 
     case 0202:
       // Ground Hog Day background color (dirty green) on 02/02
       $background_color = "#178E02";
     break;
 
     case 0214:
       // Valentines Day background color (Pink'ish Purple) on 02/14
       $background_color = "#FE5DCB";
     break;
 
     case 0422:
       // Earth Day background color (Earth Blue) on 04/22
       $background_color = "#2C7DF8";
     break;
 
     case 0704:
       // July 4th - Independence Day background color (Yellow) on 07/04
       $background_color = "#FFF20A";
     break;
 
     case 1111:
       // Veterans Day background color (white) on 11/11
       $background_color = "#FFFFFF";
     break;
 
     case 1031:
       // automatic halloween background color (light orange) on 10/31
       $background_color = "#FFE6CC";
     break;
 
     case 1225:
       // xmas day background color (light green) on 12/25
       $background_color = "#D5FFD5";
     break;
}
 
/////////////////////////////////////////////// Background Color Changer Code //////////////////////////////////////////////
 
?>
 
<body bgcolor="<?php echo($background_color);?>">
 
 
 
<?php
include('config.php');
///////////////////////////////////////////////// Pagination Code //////////////////////////////////////////////////////////
 
 
    $tbl_name="ap_form_1";        //your table name
    // How many adjacent pages should be shown on each side?
    $adjacents = 1;
    
    /*
      First get total number of rows in data table.
      If you have a WHERE clause in your query, make sure you mirror it here.
    */
 
    $query = "SELECT COUNT(*) as num FROM $tbl_name";
    $total_pages = mysql_fetch_array(mysql_query($query));
    $total_pages = $total_pages[num];
    
    /* Setup vars for query. */
    $targetpage = "index.php";     //your file name (the name of this file)
    $limit = 7;             //how many items to show per page
    $page = $_GET['page'];
    if($page)
        $start = ($page - 1) * $limit;             //first item to display on this page
    else
        $start = 0;                                //if no page var is given, set start to 0
    
    /* Get data. */
    $sql = "SELECT * FROM $tbl_name ORDER BY ABS(`element_4`) DESC LIMIT $start, $limit";
    $result = mysql_query($sql);
 
 
    /* Setup page vars for display. */
    if ($page == 0) $page = 1;                    //if no page var is given, default to 1.
    $prev = $page - 1;                            //previous page is page - 1
    $next = $page + 1;                            //next page is page + 1
    $lastpage = ceil($total_pages/$limit);        //lastpage is = total pages / items per page, rounded up.
    $lpm1 = $lastpage - 1;                        //last page minus 1
    
    /*
        Now we apply our rules and draw the pagination object.
        We're actually saving the code to a variable in case we want to draw it more than once.
    */
 
    $pagination = "";
    if($lastpage > 1)
    {    
    $pagination .= "<div class=\"pagination\">";
    //previous button
    if ($page > 1)
    $pagination.= "<a href=\"$targetpage?page=$prev\"><< previous </a>";
    else
    $pagination.= "<span class=\"disabled\"><< previous </span>";    
      
    //pages    
    if ($lastpage < 7 + ($adjacents * 2))    //not enough pages to bother breaking it up
    {    
    for ($counter = 1; $counter <= $lastpage; $counter++)
    {
    if ($counter == $page)
    $pagination.= "<span class=\"current\">$counter</span>";
    else
    $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";                    
    }
    }
    elseif($lastpage > 5 + ($adjacents * 2))    //enough pages to hide some
    {
    //close to beginning; only hide later pages
    if($page < 1 + ($adjacents * 2))        
    {
    for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
    {
    if ($counter == $page)
    $pagination.= "<span class=\"current\">$counter</span>";
    else
    $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";                    
    }
    $pagination.= "...";
    $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
    $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";        
    }
    //in middle; hide some front and some back
    elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
    {
    $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
    $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
    $pagination.= "...";
    for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
    {
    if ($counter == $page)
    $pagination.= "<span class=\"current\">$counter</span>";
    else
    $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";                    
    }
    $pagination.= "...";
    $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
    $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";        
    }
    //close to end; only hide early pages
    else
    {
    $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
    $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
    $pagination.= "...";
    for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
    {
    if ($counter == $page)
    $pagination.= "<span class=\"current\">$counter</span>";
    else
    $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";                    
    }
    }
    }
       
    //next button
    if ($page < $counter - 1)
    $pagination.= "<a href=\"$targetpage?page=$next\"> next >></a>";
    else
    $pagination.= "<span class=\"disabled\"> next >></span>";
    $pagination.= "</div>\n";        
    }
 
///////////////////////////////////////////////// Pagination Code //////////////////////////////////////////////////////////
 
?>
 
<! Final output of code !>
 
<div align="center">
 
<?php 
include('config.php');
 
$maxwidth = 190;
 
echo "<tr>&nbsp;<td>";
while($row=mysql_fetch_array($result)){
echo "&nbsp;<a href=\"$row[element_2]\"><img src=\"images/$row[element_5]\" border=\"1\" width='$maxwidth' alt=\"$row[element_1]\" title=\"$row[element_1]\"></a>";
echo "<a href=\"$row[element_2]\">$row[element_1]</a>";
}
 
?>
<p />
<?=$pagination?></div>
</body>
</html>
 
<! Final output of code !>
 
 
I would appreciate it so very much if you can keep the flow of using <table> code. I know it's an old way of doing this compared to css let's say, but I really need to get used to how it should be with table code. I'm not new to html, but I don't like mixing it with php because I seem to have lots of confusion with simple stuff like this.

Thanks a million!

Re: Echo output problem...

Posted: Mon Dec 14, 2009 5:26 pm
by requinix
Eww.

Code: Select all

<table>
    <tr>
        <td><img /><br /><a>Text</a></td>
        <td><img /><br /><a>Text</a></td>
        <td><img /><br /><a>Text</a></td>
    </tr><tr>
        <td><img /><br /><a>Text</a></td>
        <td><img /><br /><a>Text</a></td>
        <td><img /><br /><a>Text</a></td>
    </tr><tr>
        <td><img /><br /><a>Text</a></td>
        <td><img /><br /><a>Text</a></td>
        <td><img /><br /><a>Text</a></td>
    </tr>
</table>
That'd be for 3 columns of links. Try to get the PHP to match that output.


(Also, your "background color changer" stuff won't work for the dates before Veteran's Day.

Code: Select all

echo 0101;
Then try to figure out why it doesn't print the number 101. Here's a hint.)

Re: Echo output problem...

Posted: Mon Dec 14, 2009 5:32 pm
by Brian07002
My problem is getting it to loop correctly, like I say, I am good with html and table code, but I have frustrated myself to hell trying to get this to come out right for the past two weeks with php. I am looking for help trying to finish it.

Btw, If I remove the $row[element_1] link (which is just some linked text) I can get perfect table output, but that means no text, so I guess my question really is how do I add the line break correctly to put the text under the images? Tried the <br /> <p /> and even added a <tr> tag.

Also, I am not just looking for 3 columns, in particular, I am looking to just align the text under the images, there's 4 images per column, and the rows are limited by the pagination script. All of that is working fine. It's just the alignment I am having the problem with.

I am looking into the color changer code right now.


Here's what I am reading about the background color changer on this page: http://www.php-scripts.com/20051018/45/

....
..
.
To modify the script for other colors and holidays just add additional case blocks like say we wanted the background to be red for 4th of the July we’d add the following case block:

Maybe I misunderstood what you said?

Oh, I know that, you can't echo out 0101, it's not echoing out 0101 it's a case not echo block. I know what you meant by that. The colors are the same for echo and case and they look the same.

Thanks for your assistance so far, I appreciate it.

Re: Echo output problem...

Posted: Mon Dec 14, 2009 6:48 pm
by requinix
Brian07002 wrote:To modify the script for other colors and holidays just add additional case blocks like say we wanted the background to be red for 4th of the July we’d add the following case block:

Maybe I misunderstood what you said?

Oh, I know that, you can't echo out 0101, it's not echoing out 0101 it's a case not echo block. I know what you meant by that. The colors are the same for echo and case and they look the same.

Thanks for your assistance so far, I appreciate it.
Okay. Watch this. Today, on my computer, it's December 14th, 2009.

Code: Select all

switch (date("ymd")) { // 091214
    case 091214:
        echo "Got the RIGHT date";
        break;
    default:
        echo "Got the WRONG date";
        break;
}
What do you think will happen? Now run it and compare what you expected with what actually happened.

Re: Echo output problem...

Posted: Mon Dec 14, 2009 7:47 pm
by Brian07002
Ok, so I can fix that at another time, my main concern is the database output. Have you any other suggestions for that?

Btw, here is the fix to your post with the date even though it's not my first concern:

Code: Select all

<?php 
switch (date("mdy")) { // 121409
    case 121409:
        echo "Got the RIGHT date";
        break;
    default:
        echo "Got the WRONG date";
        break;
}
?>
Otherwise, thanks for the help with the other code.