php-general Digest 20 Sep 2007 06:51:49 -0000 Issue 5028
Topics (messages 262252 through 262267):
Re: Page Numbering
262252 by: Dan Shirah
262253 by: Jim Lucas
262259 by: Andrew Wilson
262260 by: Jim Lucas
[SOLVED] Page Numbering
262254 by: Dan Shirah
262255 by: Jim Lucas
Format_number and input_object_tag
262256 by: Augusto Morais
Re: Finding next recored in a array
262257 by: brian
Open New URL window
262258 by: Andrew Prostko
262261 by: Jim Lucas
262262 by: Richard S. Crawford
262267 by: Andrew Prostko
Re: back on bug 42065 , strange behavior with ArrayObject
262263 by: Chris
Re: my paging task with PHP does not work. It uses cookie.
262264 by: Patrik Hasibuan
262265 by: Patrik Hasibuan
262266 by: Patrik Hasibuan
Administrivia:
To subscribe to the digest, e-mail:
[EMAIL PROTECTED]
To unsubscribe from the digest, e-mail:
[EMAIL PROTECTED]
To post to the list, e-mail:
[EMAIL PROTECTED]
----------------------------------------------------------------------
--- Begin Message ---
Whenever the query has the NOT IN included in it, I get the following error:
Warning: mssql_query()
[function.mssql-query<http://develop1/credit%20card%20processing/Process/function.mssql-query>]:
message: Incorrect syntax near the keyword 'as'. (severity 15)
On 9/19/07, Jim Lucas <[EMAIL PROTECTED]> wrote:
>
> Dan Shirah wrote:
> > Hello all,
> >
> > I am having a problem with trying to display a set amount of records
> from my
> > result.
> > I have verified that the correct values for my variables are being
> passed to
> > the query.
> > The calculation for the records that should be displayed per page is
> > correct.
> > The total number of records returned from my query is correct.
> > And the calculated number of total pages to be displayed is correct.
> >
> > So, initially it displays the first 10 results as it should, and has the
> > pages numbers at the bottom. The problem is, when I click on a
> different
> > page number the same 10 results are ALWAYS displayed. Even though my
> $page
> > variable IS being updated.
> >
> > Any ideas why my results are not reflecting the page I select?
> >
>
> I would do it like this
>
> This assumes that 'credit_card_id' is unique,
>
> if it is not, then don't worry about reading the rest
>
> <?php
>
> # Get page number if passed to script
> $page = intval( empty($_GET['page']) ? 1 : $_GET['page'] );
>
> # Set number of rows to display from result set
> $max_results = 10;
>
> # Calculate the number of results that we have already looked at
> $page_results = intval(($page*$max_results)-$max_results);
>
> # Set your ORDER BY criteria. This needs to be the same for each SQL
> statement
> # This is why I have setup a variable, so no mistakes will be made
> $order_by_criteria = 'credit_card_id';
>
> # Figure out which SQL statement we need to use
> if ( $page === 1 ) {
>
> # Query for page 1
> $SQL = "SELECT TOP {$max_results}
> Value1, Value2
> FROM my_table
> ORDER BY {$order_by_criteria}";
>
> } else {
>
> # Query for page 2 and greater
> $SQL = "SELECT TOP {$max_results}
> Value1, Value2
> FROM my_table
> WHERE credit_card_id NOT IN (
> SELECT TOP {$page_results}
> credit_card_id
> FROM my_table
> WHERE my_table.column = 'P'
> ORDER BY {$order_by_criteria}
> ) AS newtbl
> ORDER BY {$order_by_criteria}";
>
> }
>
> ... run your $SQL statement here and work with the results
> ?>
>
> --
> Jim Lucas
>
> "Some men are born to greatness, some achieve greatness,
> and some have greatness thrust upon them."
>
> Twelfth Night, Act II, Scene V
> by William Shakespeare
>
>
--- End Message ---
--- Begin Message ---
Dan Shirah wrote:
Whenever the query has the NOT IN included in it, I get the following error:
Warning: mssql_query()
[function.mssql-query<http://develop1/credit%20card%20processing/Process/function.mssql-query>]:
message: Incorrect syntax near the keyword 'as'. (severity 15)
<?php
# Get page number if passed to script
$page = intval( empty($_GET['page']) ? 1 : $_GET['page'] );
# Set number of rows to display from result set
$max_results = 10;
# Calculate the number of results that we have already looked at
$page_results = intval(($page*$max_results)-$max_results);
# Set your ORDER BY criteria. This needs to be the same for each SQL
statement
# This is why I have setup a variable, so no mistakes will be made
$order_by_criteria = 'credit_card_id';
# Figure out which SQL statement we need to use
if ( $page === 1 ) {
# Query for page 1
$SQL = "SELECT TOP {$max_results}
Value1, Value2
FROM my_table
ORDER BY {$order_by_criteria}";
} else {
# Query for page 2 and greater
$SQL = "SELECT TOP {$max_results}
Value1, Value2
FROM my_table
WHERE credit_card_id NOT IN (
SELECT TOP {$page_results}
credit_card_id
FROM my_table
WHERE my_table.column = 'P'
ORDER BY {$order_by_criteria}
) AS newtbl
yup, sorry, missed that in the copy/paste remove the 'AS newtbl' part
ORDER BY {$order_by_criteria}";
}
... run your $SQL statement here and work with the results
?>
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
--- End Message ---
--- Begin Message ---
What do I have to do to get off this list. Murder someone?
Please take me off the list as I have already tried to unsubscribe several
times.
The email is registered under [EMAIL PROTECTED]
-----Original Message-----
From: Jim Lucas [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 20, 2007 4:03 AM
To: Dan Shirah
Cc: php-general
Subject: Re: [PHP] Page Numbering
Dan Shirah wrote:
> Whenever the query has the NOT IN included in it, I get the following
error:
>
> Warning: mssql_query()
>
[function.mssql-query<http://develop1/credit%20card%20processing/Process/fun
ction.mssql-query>]:
> message: Incorrect syntax near the keyword 'as'. (severity 15)
>
>>
>> <?php
>>
>> # Get page number if passed to script $page = intval(
>> empty($_GET['page']) ? 1 : $_GET['page'] );
>>
>> # Set number of rows to display from result set $max_results = 10;
>>
>> # Calculate the number of results that we have already looked at
>> $page_results = intval(($page*$max_results)-$max_results);
>>
>> # Set your ORDER BY criteria. This needs to be the same for each SQL
>> statement # This is why I have setup a variable, so no mistakes will
>> be made $order_by_criteria = 'credit_card_id';
>>
>> # Figure out which SQL statement we need to use if ( $page === 1 ) {
>>
>> # Query for page 1
>> $SQL = "SELECT TOP {$max_results}
>> Value1, Value2
>> FROM my_table
>> ORDER BY {$order_by_criteria}";
>>
>> } else {
>>
>> # Query for page 2 and greater $SQL = "SELECT TOP
>> {$max_results}
>> Value1, Value2
>> FROM my_table
>> WHERE credit_card_id NOT IN (
>> SELECT TOP {$page_results}
>> credit_card_id
>> FROM my_table
>> WHERE my_table.column = 'P'
>> ORDER BY {$order_by_criteria}
>> ) AS newtbl
yup, sorry, missed that in the copy/paste remove the 'AS newtbl' part
>> ORDER BY {$order_by_criteria}";
>>
>> }
>>
>> ... run your $SQL statement here and work with the results ?>
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
--
PHP General Mailing List (http://www.php.net/) To unsubscribe, visit:
http://www.php.net/unsub.php
--- End Message ---
--- Begin Message ---
Andrew Wilson wrote:
What do I have to do to get off this list. Murder someone?
Please take me off the list as I have already tried to unsubscribe several
times.
The email is registered under [EMAIL PROTECTED]
-----Original Message-----
From: Jim Lucas [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 20, 2007 4:03 AM
To: Dan Shirah
Cc: php-general
Subject: Re: [PHP] Page Numbering
Dan Shirah wrote:
Whenever the query has the NOT IN included in it, I get the following
error:
Warning: mssql_query()
[function.mssql-query<http://develop1/credit%20card%20processing/Process/fun
ction.mssql-query>]:
message: Incorrect syntax near the keyword 'as'. (severity 15)
<?php
# Get page number if passed to script $page = intval(
empty($_GET['page']) ? 1 : $_GET['page'] );
# Set number of rows to display from result set $max_results = 10;
# Calculate the number of results that we have already looked at
$page_results = intval(($page*$max_results)-$max_results);
# Set your ORDER BY criteria. This needs to be the same for each SQL
statement # This is why I have setup a variable, so no mistakes will
be made $order_by_criteria = 'credit_card_id';
# Figure out which SQL statement we need to use if ( $page === 1 ) {
# Query for page 1
$SQL = "SELECT TOP {$max_results}
Value1, Value2
FROM my_table
ORDER BY {$order_by_criteria}";
} else {
# Query for page 2 and greater $SQL = "SELECT TOP
{$max_results}
Value1, Value2
FROM my_table
WHERE credit_card_id NOT IN (
SELECT TOP {$page_results}
credit_card_id
FROM my_table
WHERE my_table.column = 'P'
ORDER BY {$order_by_criteria}
) AS newtbl
yup, sorry, missed that in the copy/paste remove the 'AS newtbl' part
ORDER BY {$order_by_criteria}";
}
... run your $SQL statement here and work with the results ?>
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
--
PHP General Mailing List (http://www.php.net/) To unsubscribe, visit:
http://www.php.net/unsub.php
Well, it looks like you are using the wrong email address.
The email address that you used to send this email was from
[EMAIL PROTECTED]
and the email address that you are trying to unsubscribe is
[EMAIL PROTECTED]
which is it?
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
--- End Message ---
--- Begin Message ---
Awesome.
I just had to modify the outter query:
$SQL = "SELECT TOP {$max_results}
Value1, Value2
FROM my_table
WHERE credit_card_id NOT IN (
To read:
$SQL = "SELECT TOP {$max_results}
Value1, Value2
FROM my_table
WHERE my_table.column = 'P'
AND credit_card_id NOT IN (
And it works like a champ.
Thank you very much to everyone that helped me on this!
On 9/19/07, Jim Lucas <[EMAIL PROTECTED]> wrote:
>
> Dan Shirah wrote:
> > Whenever the query has the NOT IN included in it, I get the following
> error:
> >
> > Warning: mssql_query()
> > [function.mssql-query<
> http://develop1/credit%20card%20processing/Process/function.mssql-query>]:
> > message: Incorrect syntax near the keyword 'as'. (severity 15)
> >
> >>
> >> <?php
> >>
> >> # Get page number if passed to script
> >> $page = intval( empty($_GET['page']) ? 1 : $_GET['page'] );
> >>
> >> # Set number of rows to display from result set
> >> $max_results = 10;
> >>
> >> # Calculate the number of results that we have already looked at
> >> $page_results = intval(($page*$max_results)-$max_results);
> >>
> >> # Set your ORDER BY criteria. This needs to be the same for each SQL
> >> statement
> >> # This is why I have setup a variable, so no mistakes will be made
> >> $order_by_criteria = 'credit_card_id';
> >>
> >> # Figure out which SQL statement we need to use
> >> if ( $page === 1 ) {
> >>
> >> # Query for page 1
> >> $SQL = "SELECT TOP {$max_results}
> >> Value1, Value2
> >> FROM my_table
> >> ORDER BY {$order_by_criteria}";
> >>
> >> } else {
> >>
> >> # Query for page 2 and greater
> >> $SQL = "SELECT TOP {$max_results}
> >> Value1, Value2
> >> FROM my_table
> >> WHERE credit_card_id NOT IN (
> >> SELECT TOP {$page_results}
> >> credit_card_id
> >> FROM my_table
> >> WHERE my_table.column = 'P'
> >> ORDER BY {$order_by_criteria}
> >> ) AS newtbl
>
> yup, sorry, missed that in the copy/paste remove the 'AS newtbl' part
>
> >> ORDER BY {$order_by_criteria}";
> >>
> >> }
> >>
> >> ... run your $SQL statement here and work with the results
> >> ?>
>
>
> --
> Jim Lucas
>
> "Some men are born to greatness, some achieve greatness,
> and some have greatness thrust upon them."
>
> Twelfth Night, Act II, Scene V
> by William Shakespeare
>
>
--- End Message ---
--- Begin Message ---
Dan Shirah wrote:
Awesome.
I just had to modify the outter query:
$SQL = "SELECT TOP {$max_results}
Value1, Value2
FROM my_table
WHERE credit_card_id NOT IN (
To read:
$SQL = "SELECT TOP {$max_results}
Value1, Value2
FROM my_table
WHERE my_table.column = 'P'
AND credit_card_id NOT IN (
And it works like a champ.
Thank you very much to everyone that helped me on this!
On 9/19/07, Jim Lucas <[EMAIL PROTECTED]> wrote:
Dan Shirah wrote:
Whenever the query has the NOT IN included in it, I get the following
error:
Warning: mssql_query()
[function.mssql-query<
http://develop1/credit%20card%20processing/Process/function.mssql-query>]:
message: Incorrect syntax near the keyword 'as'. (severity 15)
<?php
# Get page number if passed to script
$page = intval( empty($_GET['page']) ? 1 : $_GET['page'] );
# Set number of rows to display from result set
$max_results = 10;
# Calculate the number of results that we have already looked at
$page_results = intval(($page*$max_results)-$max_results);
# Set your ORDER BY criteria. This needs to be the same for each SQL
statement
# This is why I have setup a variable, so no mistakes will be made
$order_by_criteria = 'credit_card_id';
# Figure out which SQL statement we need to use
if ( $page === 1 ) {
# Query for page 1
$SQL = "SELECT TOP {$max_results}
Value1, Value2
FROM my_table
ORDER BY {$order_by_criteria}";
} else {
# Query for page 2 and greater
$SQL = "SELECT TOP {$max_results}
Value1, Value2
FROM my_table
WHERE credit_card_id NOT IN (
SELECT TOP {$page_results}
credit_card_id
FROM my_table
WHERE my_table.column = 'P'
ORDER BY {$order_by_criteria}
) AS newtbl
yup, sorry, missed that in the copy/paste remove the 'AS newtbl' part
ORDER BY {$order_by_criteria}";
}
... run your $SQL statement here and work with the results
?>
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
just noticed that I missed that where clause in the page 1 query also. make
sure you add that.
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
--- End Message ---
--- Begin Message ---
Hi,
I have 2 problems.
First: When an user type a number that have comma the numbers after of
comma doesnt safe.
example:
the user wants save the number:
10,85
I dont know but the symfony just save the number 10. The 85 is ignored.
How i fix it ?
Second problem:
i'm trying format a number in the object_input_tag . How i do it ?
<?php $value = object_input_tag($estoque_entrada, 'getPrecoUnitario',
array (
'size' => 23,
'control_name' => 'estoque_entrada[preco_unitario]',
)); echo $value ? $value : ' ' ?>
the correct way is change the getPrecoUnitario function in
actions.class.php ?
thanks
Augusto Morais
--- End Message ---
--- Begin Message ---
tedd wrote:
At 11:52 AM -0400 9/17/07, brian wrote:
tedd wrote:
Richard Kurth wrote:
$Campaign_array| = array('0','1','3','5','8','15','25');|
I know that I can find the next recored in a array using next. What
I do not understand is if I know the last number was say 5 how do I
tell the script that that is the current number so I can select the
next record
What the next record?
Try:
$array = array('0','1','3','5','8','15','25');
$val = "5";
echo($array[array_search($val, $array)+1]);
Cheers,
tedd
Not quite:
$array = array('0','1','3','5','8','15','25');
$val = "25";
echo($array[array_search($val, $array)+1]);
Notice: Undefined offset: 7 ...
brian
Duh?
You program for that -- you want me to write the entire code?
~sigh~
Grasshopper, the point i was trying to make is that your example
displays what *not* to do with array_search(). Though a wonderful
teaching aid in itself, it falls somewhat short of being a reasonable
solution for the OP.
brian
--- End Message ---
--- Begin Message ---
I am new to PHP and to email lists so I apologize in advance.
What I am trying to do is to take a password from user input, check
it to make sure it is == to something, say burgers
My problem is, I do not know how to make the Else statement...
How do I get it to open a new url?
I want it IF yes open this page, else open this page
or
If it is not correct then Say the password is incorrect or
something
Else
Open a different webpage
My last attempt:
---------------
<BODY onLoad="top.window.focus()">
<?php
// Define your password
$password = "burgers";
if ($_POST['pw'] != $password) {
?>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
<TR>
<TD ROWSPAN=2 WIDTH=50%>
<img src="images/charlee.gif">
</TD>
<TD WIDTH=50% ALIGN=CENTER VALIGN=MIDDLE>
<FONT FACE="ARIAL" SIZE=2><B>You'll need a password to get in here. We're
tryin' to keep out the
riff-raff.</B></FONT><BR>
</TD>
</TR>
<TR>
<TD WIDTH=50% ALIGN=CENTER VALIGN=BOTTOM>
<CENTER>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<br />
Name: <input type="text" name="Name" />
<br />
Email: <input type="text name="email" />
<br />
What is the Current Coupon Password?: <input type="text" name="pw" />
<input type="submit" value="Get Coupon!"/>
</form>
<A HREF="index.html" TARGET="_blank"><B>Return to Char-lees</B></A></FONT>
</CENTER>
</TD>
</TR>
</TABLE>
<?php
}
else{
$file = fopen("http://www.google.com/","r";
?>
<?php
} ?>
---------------
This creates a nice small form with an image to the left.
My problem is, I do not know how to make the Else statement...
How do I get it to open a new url?
I want it IF yes open this page, else open this page
Andrew Prostko
AProstko @ verizon.net
--- End Message ---
--- Begin Message ---
Andrew Prostko wrote:
I am new to PHP and to email lists so I apologize in advance.
What I am trying to do is to take a password from user input, check
it to make sure it is == to something, say “burgers”
My problem is, I do not know how to make the Else statement...
How do I get it to open a new url?
I want it IF yes open this page, else open this page
or
If it is not correct then Say the password is incorrect or
something…
Else
Open a different webpage
My last attempt:
---------------
<BODY onLoad="top.window.focus()">
<?php
// Define your password
$password = "burgers";
if ($_POST['pw'] != $password) {
?>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
<TR>
<TD ROWSPAN=2 WIDTH=50%>
<img src="images/charlee.gif">
</TD>
<TD WIDTH=50% ALIGN=CENTER VALIGN=MIDDLE>
<FONT FACE="ARIAL" SIZE=2><B>You'll need a password to get in here. We're
tryin' to keep out the
riff-raff.</B></FONT><BR>
</TD>
</TR>
<TR>
<TD WIDTH=50% ALIGN=CENTER VALIGN=BOTTOM>
<CENTER>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<br />
Name: <input type="text" name="Name" />
<br />
Email: <input type="text name="email" />
<br />
What is the Current Coupon Password?: <input type="text" name="pw" />
<input type="submit" value="Get Coupon!"/>
</form>
<A HREF="index.html" TARGET="_blank"><B>Return to Char-lees</B></A></FONT>
</CENTER>
</TD>
</TR>
</TABLE>
<?php
}
else{
$file = fopen("http://www.google.com/","r";
?>
<?php
} ?>
---------------
This creates a nice small form with an image to the left.
My problem is, I do not know how to make the Else statement...
How do I get it to open a new url?
I want it IF yes open this page, else open this page
Andrew Prostko
AProstko @ verizon.net
You might be in need of the header() function in php
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
--- End Message ---
--- Begin Message ---
On Wednesday 19 September 2007 15:50:08 Andrew Prostko wrote:
> My problem is, I do not know how to make the Else statement...
> How do I get it to open a new url?
> I want it IF yes open this page, else open this page
Andrew,
try the header() function:
<?php
if ($_POST['pw'] != $password) {
?>
...show your form...
<?php
} else {
header ("otherpage.php");
}
One problem you might be having is that the < body > tag at the very top might
be sending headers to your browser before your else statement has a chance to
kick in, generating an error which reads something like, "Headers already
sent..." Try moving it to after the conditional, like this:
<?php
if ($_POST['pw'] != $password) {
?>
< BODY onLoad="top.window.focus()" >
...rest of your form...
<?php
} else {
...and so on.
--
Richard S. Crawford
Editor-in-chief, Daikaijuzine (http://www.daikaijuzine.com)
Personal website: http://www.mossroot.com
http://www.myspace.com/underpope / underpope.livejournal.com
"We are here to help each other get through this thing, whatever it is."
(Kurt Vonnegut, 1922 - 2007)
signature.asc
Description: This is a digitally signed message part.
--- End Message ---
--- Begin Message ---
Ok, so I started using the header code that was suggested:
And I get this error:
Parse error: parse error, unexpected '{' in
/home/char-lee/public_html/beta/1.php on line 3
This is the code:
-----------
<?php
if ($_POST['pw'] != burgers
{
header("Location: password.php");
}
else
{
header("Location: sept-coupon07.html");
}
?>
-----------
--- End Message ---
--- Begin Message ---
Julien Pauli wrote:
Wow, all right ; that's why casting to (array) before passing the
variable , thus making a copy of it, works.
Thanks for that short but effective answer ;-)
However, except in the comments, this is not said in the original doc.
It should be written
ArrayObject ArrayObject::__construct ( mixed &$input )
shouldn't it ?
I guess it's time to post a documentation bug :) I'm sure they'd also
appreciate a patch if possible.
--
Postgresql & php tutorials
http://www.designmagick.com/
--- End Message ---
--- Begin Message ---
Hi Arvid,
thank you very much for your remark. It is useful for me.
===
On Fri, 14 Sep 2007 12:01:40 +0300
"Arvids Godjuks" <[EMAIL PROTECTED]> wrote:
> Don't use SQL_CALC_FOUND ROWS on simple queries, when you have to run a
> simple query on one or two (with join) tables with a simple WHERE. Especialy
> if tables are big. I found out that single SELECT COUNT(id) FROM table is
> far more faster when query has simple WHERE conditions. I use
> SQL_CALC_FOUND_ROWS only with a rather complex queries - that
> SQL_CALC_FOUND_ROWS doesn't affect query execution at all (well, it affects
> ofcourse, but affect is so small, you can't see it).
>
--
Patrik Hasibuan <[EMAIL PROTECTED]>
Junior Programmer
--- End Message ---
--- Begin Message ---
Dear Brian,
My problem is solved. thank you very much for your help.
===
On Wed, 12 Sep 2007 14:04:11 -0400
brian <[EMAIL PROTECTED]> wrote:
> Patrik Hasibuan wrote:
> > Dear my friends...
> >
> > I am trying to display the content of a table. Each page must content
> > only 5 records maximum. Each page has "Previous" and "Next" buttons
> > (made from anchor).
> >
> > I dump the primary of the working table and keep it in a cookie. So
> > than the paging task work with the index of cookie array. But the
> > $curguruescomidiklan stays "0" each time I click "Next" button.
> >
>
> Patrick, i can't say what the problem is, but i recommend using the PEAR
> Pager package for this if you have PEAR available. It takes care of a
> lot of the heavy lifting and is very configurable.
>
> http://pear.php.net/package/Pager
>
> This does not require setting any cookies.
>
> brian
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>
--
Patrik Hasibuan <[EMAIL PROTECTED]>
Junior Programmer
--- End Message ---
--- Begin Message ---
Dear mike,
your thread solved my problem.
I really appreciate your help.
Thank you very much.
On Thu, 13 Sep 2007 14:49:29 -0700
mike <[EMAIL PROTECTED]> wrote:
> warning: this is VERY UGLY CODE. i wrote it 3-4 years ago now i think
> and it just keeps working.
>
> you call it this way:
>
> # pagination.
> if(isset($_GET['pg'])) {
> $page = intval($_GET['pg']);
> } else {
> $page = 1;
> }
> $page = sprintf("%02d",$page);
>
> $query = Array(
> 'query' => "SELECT foo FROM bar",
> 'itemsperpage' => 50,
> 'maxdisplay' => 20,
> 'linkprefix' => "$_SERVER[PHP_SELF]?f=$forum_id&pg="
> );
> list($pages,$numpages,$items,$threads) = paginate_sql($page,$query);
>
> $pages is the html formatted links
> $numpages is the total number of pages
> i dont actually use $items much but i think it just tells you how many
> items (which is the same as itemsperpage... i believe)
> $threads is the mysql rows resource (you can use mysql_fetch_rows on it)
>
>
>
> function paginate_sql(&$thispage,$options) {
> $offset = $options['itemsperpage'] * ($thispage - 1);
> if(isset($options['server'])) {
> $results = db_query(eregi_replace("^SELECT","SELECT
> SQL_CALC_FOUND_ROWS",$options['query'])."LIMIT
> $offset,$options[itemsperpage]",$options['server']);
> $rows = db_query("SELECT FOUND_ROWS()",$options['server']);
> } else {
> $results = db_query(eregi_replace("^SELECT","SELECT
> SQL_CALC_FOUND_ROWS",$options['query'])."LIMIT
> $offset,$options[itemsperpage]");
> $rows = db_query("SELECT FOUND_ROWS()");
> }
> list($totalitems) = db_rows($rows);
> db_free($rows);
> $html = "";
> $numpages = ceil($totalitems / $options['itemsperpage']);
> if(isset($options['maxpages']) && $numpages >
> $options['maxpages']) { $numpages = $options['maxpages']; }
> if($thispage < 1 || $totalitems < $options['itemsperpage']) {
> $thispage = sprintf("%02d",1); }
> if($thispage > $numpages && $numpages > 0) {
> header(sprintf("Location: %s01",
> str_replace("&","&",$options['linkprefix'])));
> exit();
> }
> $start = (ceil($thispage / $options['maxdisplay'])-1) *
> $options['maxdisplay'] + 1;
> if($start == 1) {
> $html .= "«";
> } else {
> $html .= sprintf("<a href=\"%s%02d\">«</a>",
> $options['linkprefix'], $start-1);
> }
> if(isset($options['maxdisplay']) && $options['maxdisplay'] !=
> 0 && $numpages > $options['maxdisplay']) {
> $numlist = $options['maxdisplay'] + $start - 1;
> } else {
> $numlist = $numpages + $start - 1;
> }
> if($numlist > $numpages) { $numlist = $numpages; }
> for($x=$start; $x<=$numlist; $x++) {
> if($x == $thispage) {
> $html .= sprintf(" %02d", $x);
> } else {
> $html .= sprintf(" <a
> href=\"%s%02d\">%02d</a>", $options['linkprefix'], $x, $x);
> }
> }
> if($numlist == $numpages) {
> $html .= " »";
> } else {
> $html .= sprintf(" <a href=\"%s%02d\">»</a>",
> $options['linkprefix'], $numlist+1);
> }
> if($totalitems <= $options['itemsperpage']) { $html = ""; }
> return Array($html,sprintf("%02d",$numpages),$totalitems,$results);
> }
>
> On 9/13/07, Patrik Hasibuan <[EMAIL PROTECTED]> wrote:
> > Hi Mike,
> >
> > I am intrested for the solution you gave me. But I am confused of the way
> > in implementing "select FOUND_ROWS()".
> >
> > I wrote another very simple codes as the first step for understanding this
> > threat:
> > <?php
> > $konek=mysql_connect("127.0.0.1","root","mypassword");
> > if ($konek){
> > for ($i=0;$i<2;$i++){
> > $sqlku="select SQL_CALC_FOUND_ROWS id_iklan from lowongan limit 5;";
> > $sqlkupage="select FOUND_ROWS()";
> > $mybd=mysql_select_db("headhunter",$konek);
> > $kueri=mysql_query($sqlku,$konek) or die('MYSQL QUERY ERROR
> > ['.mysql_errno($konek).'] '.mysql_error($konek));
> > $kueri=mysql_query($sqlkupage,$konek) or die('MYSQL QUERY ERROR
> > ['.mysql_errno($konek).'] '.mysql_error($konek));
> > while($brs=mysql_fetch_row($kueri)){
> > list($idiklan)=$brs;
> > echo "FirstItem <a
> > href=\"showit.php?id=$idiklan\">$idiklan</a><br>";
> > }
> > }
> > }else{
> > echo "I can't talk to the server<br>";
> > exit();
> > }
> > ?>
> >
> > I've put nine records into the table of "lowongan", idiklan 1 to 9.
> > Look I get of course only one record, namely the: '9'.
> >
> > This is the output of my codes in my internet browser.
> > ===
> > FirstItem 9
> > FirstItem 9
> > ===
> > The output what I am expecting suppose to be:
> > on the $i=0
> > "
> > FirstItem 1
> > FirstItem 2
> > FirstItem 3
> > FirstItem 4
> > FirstItem 5
> > "
> > and on the $i=1
> > "
> > FirstItem 6
> > FirstItem 7
> > FirstItem 8
> > FirstItem 9
> > FirstItem 9
> > "
> >
> > I read on the documentation of MySQL but I couldn't find any code of sample
> > also in the php.net.
> >
> > Would be so kind to give me a very simple code of sample?
> >
> > Thank you very much in advance.
> > On Wed, 12 Sep 2007 11:58:04 -0700
> > mike <[EMAIL PROTECTED]> wrote:
> >
> > > On 9/12/07, Patrik Hasibuan <[EMAIL PROTECTED]> wrote:
> > > > Dear my friends...
> > > >
> > > > I am trying to display the content of a table. Each page must content
> > > > only 5 records maximum. Each page has "Previous" and "Next" buttons
> > > > (made from anchor).
> > > >
> > > > I dump the primary of the working table and keep it in a cookie. So
> > > > than the paging task work with the index of cookie array. But the
> > > > $curguruescomidiklan stays "0" each time I click "Next" button.
> > >
> > > yeah there is no reason to be using cookies for this.
> > >
> > > just using query string parameters should work. for pagination you need
> > > to know:
> > >
> > > total number of items
> > > number of items per page
> > >
> > > after that you know how many pages (numitems / itemsperpage) and work
> > > out the links appropriately (i.e. page1 has no previous, $maxpage has
> > > no next) and you can put the number of pages down how you want (if you
> > > want to do prev 3 4 5 next, or next 1 2 3 4 5 6 7 8 9 prev, there's a
> > > ton of strategies to print out what pages to show, and next, previous,
> > > jump to end, jump to beginning, etc)
> > >
> > > i've never used the PEAR class or anything else, i made a function a
> > > long time ago that actually works in conjunction with mysql's SELECT
> > > FOUND_ROWS() and uses a LIMIT offset,number to save the overhead of
> > > fetching every row from the database to only show the ones for that
> > > page. it's actually worked well for 4 years now without a single
> > > change...
> > >
> > > at some point perhaps i'll clean it up and post it somewhere, and
> > > someone might be able to make it even better.
> > >
> > > --
> > > PHP General Mailing List (http://www.php.net/)
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
> > >
> > >
> >
> >
> > --
> > Patrik Hasibuan <[EMAIL PROTECTED]>
> > Junior Programmer
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>
--
Patrik Hasibuan <[EMAIL PROTECTED]>
Junior Programmer
--- End Message ---