Tycoon Talk
Become a Big fish!
The number 1 forum for online business!
Post topics, ask questions, share your knowledge.
Tycoon Talk is part of Freelancer.com - find skilled workers online at a fraction of the cost.

PHP Forum


You are currently viewing our PHP Forum as a guest. Please register to participate.
Login



Freelance Jobs

Reply
Limit Query By Letter...
Old 09-06-2011, 10:02 PM Limit Query By Letter...
Brian07002's Avatar
Defies a Status

Posts: 2,162
Name: ...
Location: ...
Trades: 0
Hi,

I am using this query to limit to just the letter D
PHP Code:
WHERE left(title,1)='D' 
Why am I getting titles that don't start with the letter D (as well as D) ?

Any other way to do that?

Here's my complete page:

PHP Code:
<?php

/* Include your code to connect to DB. */
include('connect.php');

/* Your DB table name */
$tbl_name="amp_ads";

/* 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 WHERE title LIKE 'd%' LIMIT 1";
$total_pages mysql_fetch_array(mysql_query($query));
$total_pages $total_pages[num];

/* Setup vars for query. */
$targetpage "az.php"/* your file name(the name of this file) */

$limit 1;/* how many items to show per page */

$page $_GET['page'];
if(
$page
$st = ($page 1) * $limit/* first item to display on this page */

else
$st 0/* if no page var is given, set st to 0 */

/* Get data. */
$sql "SELECT title FROM $tbl_name LIMIT $st$limit WHERE title LIKE 'd%' ";
$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 .= "";

/* previous button */

if ($page 1
$pagination.= "<a href=\"$targetpage?page=$prev\" class=\"current\"> previous </a>";
else
$pagination.= "<span class=\"disabled\"> previous </span>";

/* pages */

if ($lastpage + ($adjacents 2))/* not enough pages to bother breaking it up */
{
for (
$counter 1$counter <= $lastpage$counter++)
{
if (
$counter == $page)
$pagination.= "<span class=\"number\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
}
}
elseif(
$lastpage + ($adjacents 2))/* enough pages to hide some */
{

/* close to beginning; only hide later pages */

if($page + ($adjacents 2))
{
for (
$counter 1$counter + ($adjacents 2); $counter++)
{
if (
$counter == $page)
$pagination.= "<span class=\"number\">$counter </span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
}
$pagination.= "<span class=\"dots\">...</span>";
$pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";
}

/* in middle; hide some front and some back */

elseif($lastpage - ($adjacents 2) > $page && $page > ($adjacents 2))
{
$pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
$pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
$pagination.= "<span class=\"dots\">...</span>";
for (
$counter $page $adjacents$counter <= $page $adjacents$counter++)
{
if (
$counter == $page)
$pagination.= "<span class=\"number\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</ a>";
}
$pagination.= "<span class=\"dots\">...</span>";
$pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";
}

/* close to end; only hide early pages */

else
{
$pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
$pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
$pagination.= "<span class=\"dots\">...</span>";
for (
$counter $lastpage - (+ ($adjacents 2)); $counter <= $lastpage$counter++)
{
if (
$counter == $page)
$pagination.= "<span class=\"number\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
}
}
}

/* next button */

if ($page $counter 1)
$pagination.= "<a href=\"$targetpage?page=$next\" class=\"number current\"> next </a>";
else
$pagination.= "<span class=\"disabled\"> next </span>";
$pagination.= "</div>\n";
}

/* End of Pagination Script */

?>

<!-- Table Output Code -->

<?php

$result 
mysql_query("SELECT * FROM amp_ads WHERE title LIKE 'd%' ") or die(mysql_error());

$numCols 1;
$numPerCol ceil(mysql_num_rows($result) / $numCols);

echo 
"<table valign=\"top\"><tr>";

for(
$col 1$col <= $numCols$col++) {

echo 
"<td valign=\"top\">";

for(
$row 0$row $numPerCol$row++) {

$resultRow mysql_fetch_assoc($result);

if(
$resultRow == false) {

break;
}

$f fopen('http://reunitemysite.com/scripts/amp/show.php?z=1&incl=1&ip='.getenv('REMOTE_ADDR').'&url='.urlencode(getenv('HTTP_HOST').getenv('REQUEST_URI')),'r');
echo 
stripslashes(fread($f,100000));
fclose($f);

 }
 echo 
"</td>";
}
echo 
"</tr></table>"

?>

<?=$pagination?> 
</div>
Thank you!
Brian
__________________
Made2Own

Please login or register to view this content. Registration is FREE

Last edited by Brian07002; 09-06-2011 at 11:26 PM..
Brian07002 is offline
Reply With Quote
View Public Profile
 
 
Register now for full access!
Old 09-07-2011, 02:32 AM Re: Limit Query By Letter...
Super Spam Talker

Posts: 879
Name: Paul W
Trades: 0
"I am using this query "

No you aren't! Not in that sample code.
__________________

Please login or register to view this content. Registration is FREE
|
Please login or register to view this content. Registration is FREE


*** New:
Please login or register to view this content. Registration is FREE
PaulW is offline
Reply With Quote
View Public Profile
 
Old 09-07-2011, 06:21 AM Re: Limit Query By Letter...
Brian07002's Avatar
Defies a Status

Posts: 2,162
Name: ...
Location: ...
Trades: 0
Quote:
Originally Posted by PaulW View Post
"I am using this query "

No you aren't! Not in that sample code.
Whoops, my mistake...That was another way to do the same thing, but in either case, I am getting more results than just titles that start with the letter d. All I changed was the where clause on the query, nothing else.

Any ideas?

Thank you
Brian
__________________
Made2Own

Please login or register to view this content. Registration is FREE

Last edited by Brian07002; 09-07-2011 at 06:28 AM..
Brian07002 is offline
Reply With Quote
View Public Profile
 
Old 09-07-2011, 11:35 AM Re: Limit Query By Letter...
vectorialpx's Avatar
Extreme Talker

Posts: 249
Name: octavian
Location: Bucharest
Trades: 0
Code:
$query = "SELECT COUNT(*) myN FROM $tbl_name WHERE `title` LIKE 'd%' LIMIT 1";
$theQ = mysql_query($query) or die(mysql_error());
$total_pages = mysql_fetch_assoc($theQ);
$total_pages = $total_pages['myN'];
I don't see a problem... you can test my simple adjustments. Before this, make sure $tbl_name is what you need.
__________________
you can
Please login or register to view this content. Registration is FREE
vectorialpx is offline
Reply With Quote
View Public Profile Visit vectorialpx's homepage!
 
Old 09-07-2011, 05:55 PM Re: Limit Query By Letter...
Brian07002's Avatar
Defies a Status

Posts: 2,162
Name: ...
Location: ...
Trades: 0
Quote:
Originally Posted by vectorialpx View Post
Code:
$query = "SELECT COUNT(*) myN FROM $tbl_name WHERE `title` LIKE 'd%' LIMIT 1";
$theQ = mysql_query($query) or die(mysql_error());
$total_pages = mysql_fetch_assoc($theQ);
$total_pages = $total_pages['myN'];
I don't see a problem... you can test my simple adjustments. Before this, make sure $tbl_name is what you need.
Hi Thank you for your code, I am going to try that now. I should put that in replace of all three select queries in my code right? Note: I will comment out the original and post your code above it.

No good, error in SQL syntax. I have emailed the company to see if they can sort it out correctly.

Thanks anyway for your help
Brian
__________________
Made2Own

Please login or register to view this content. Registration is FREE

Last edited by Brian07002; 09-07-2011 at 06:54 PM..
Brian07002 is offline
Reply With Quote
View Public Profile
 
Reply     « Reply to Limit Query By Letter...
 

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off





   
RSS Feed  Feeds: RSS   JS   XML
RSS Feed  Feeds for this forum: RSS   JS   XML



Page generated in 0.42501 seconds with 12 queries