...

View Full Version : Link question



ilouie
02-03-2010, 08:06 PM
Guys, In a pagination script, I can't seem to get the link to go to another page within the site. Am I doing something wrong? It says the page is not found on the server but, I linked a title on a regular page to the same page the pagination is linked to and it went to it... Any suggestions?

for some reason without the pagination, this is the page it links to:
http://localhost/websites/c4s2/sending.php

but, with the pagination, this is the page it get's linked to:
http://localhost/websites/c4s2/\sending.php.

I don't know why is adding a another slash, like above..Thanks

Fumigator
02-03-2010, 08:45 PM
Obviously that URL is invalid... we have no idea why your code is producing an invalid URL. We can't see your code.

masterofollies
02-03-2010, 09:01 PM
Your problem is the backslash in the url.

Len Whistler
02-03-2010, 09:25 PM
And localhost doesn't help either.



--------

ilouie
02-04-2010, 01:21 AM
Thank you Fumigator. Here's the code:


<?php
/*
Place code to connect to your DB here.
*/
$username="root";
$password="root";
$database=”pagination";

$dbh=mysql_connect(localhost,$username,$password) or die ('I cannot connect to the database because: ' . mysql_error());
@mysql_select_db($database);
// include your code to connect to DB.

$tbl_name="louie"; //your table name
// How many adjacent pages should be shown on each side?
$adjacents = 3;

/*
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 = 10; //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 image_path, title, image_text FROM $tbl_name ORDER BY id 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.
*/
while($row = mysql_fetch_array($result)){
echo "<img src='{$row['image_path']}' alt=' ' /><br />";
echo "".$row['title']."<br />";
echo "".$row['image_text']."<br />";
}
$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";
}
echo "\n".$pagination;
?>

ilouie
02-04-2010, 01:39 PM
anybody have any suggestions?

abduraooft
02-04-2010, 01:54 PM
I can't see any single line that echoes something ending with ...sending.php

ilouie
02-04-2010, 02:45 PM
Sending.php is the link page to the text being echoed....My problem is that when I click on a link from the paginated text, the script is echoing an extra slash and it makes the link invalid. Ex. http://localhost/websites/c4s2/\sending.php. Ex../\

ilouie
02-04-2010, 03:14 PM
I checked the database field and it shows the text correctly formatted but, I can figure out why upon echoing, it shows an extra slash..

Fumigator
02-04-2010, 07:13 PM
This line of code is wrong...


$pagination .= "<div class="pagination\">";

Interestingly, this forum's PHP tag is removing the escaping backslash from the code I just posted. Hmph.

OK I changed it to use the CODE tag and you can see the problem now. There may be other problems similar to this. Check your code syntax closely.

nysmenu
02-04-2010, 08:54 PM
thanks, but, which code did you remove?

Fumigator
02-04-2010, 08:56 PM
I didn't change anything. I just showed you the problem code. Your double-quotes aren't matching up properly.

nysmenu
02-04-2010, 09:19 PM
dude, I'm going to apologize but, I just don't see it...

nysmenu
02-04-2010, 09:48 PM
O.K. It seems to be working on the server. It's linking properly to an outside URL but, it's not linking internally...Any suggestions?

masterofollies
02-05-2010, 01:46 AM
change this


$pagination = "";
if($lastpage > 1)
{
$pagination .= "<div class="pagination\">";
//previous button

to this


$pagination = "";
if($lastpage > 1)
{
$pagination .= '<div class="pagination">';
//previous button



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum