[prev in list] [next in list] [prev in thread] [next in thread]
List: php-general
Subject: [PHP] Re: mysql_num_rows()
From: 68.80.24.111
Date: 2011-02-24 16:33:08
Message-ID: 14.C5.48037.C48866D4 () pb1 ! pair ! com
[Download RAW message or body]
"Pete Ford" <pete@justcroft.com> wrote in message
news:B3.66.55836.0AA266D4@pb1.pair.com...
> On 22/02/11 14:40, Gary wrote:
> > "Pete Ford"<pete@justcroft.com> wrote in message
> > news:76.48.39221.054C36D4@pb1.pair.com...
> > > On 22/02/11 13:59, Gary wrote:
> > > > "Pete Ford"<pete@justcroft.com> wrote in message
> > > > news:A4.C0.39221.B3CA36D4@pb1.pair.com...
> > > > > On 22/02/11 05:40, Gary wrote:
> > > > > > Can someone tell me why this is not working? I do not get an error
> > > > > > message,
> > > > > > the results are called and echo'd to screen, the count does not work,
> > > > > > I
> > > > > > get
> > > > > > a 0 for a result...
> > > > > >
> > > > > >
> > > > > >
> > > > > > $result = mysql_query("SELECT * FROM `counties` WHERE name =
> > > > > > 'checked'")
> > > > > > or
> > > > > > die(mysql_error());
> > > > > >
> > > > > > if ( isset($_POST['submit']) ) {
> > > > > > for($i=1; $i<=$_POST['counties']; $i++) {
> > > > > > if ( isset($_POST["county$i"] ) ) {
> > > > > > echo "You have chosen ". $_POST["county$i"]."<br/>";
> > > > > > }
> > > > > > }
> > > > > > }
> > > > > >
> > > > > > $county_total=mysql_num_rows($result);
> > > > > >
> > > > > > while($row = mysql_fetch_array($result))
> > > > > > {$i++;
> > > > > > echo $row['name'];
> > > > > > }
> > > > > > $county_total=mysql_num_rows($result);
> > > > > > echo "$county_total";
> > > > > >
> > > > > > echo 'You Have ' . "$county_total" . ' Counties ';
> > > > > >
> > > > > > ?>
> > > > >
> > > > > The first thing I see is that you do
> > > > > $county_total=mysql_num_rows($result)
> > > > > twice. Now I'm not to sure, but it is possible that looping over
> > > > > mysql_fetch_array($result) moves an array pointer so the count is not
> > > > > valid after the operation... that's a long shot.
> > > > >
> > > > > But since you are looping over the database records anyway, why not
> > > > > just
> > > > > count them as you go? Isn't $i the number of counties after all the
> > > > > looping?
> > > > >
> > > > >
> > > > > --
> > > > > Peter Ford, Developer phone: 01580 893333 fax: 01580
> > > > > 893399
> > > > > Justcroft International Ltd.
> > > > > www.justcroft.com
> > > > > Justcroft House, High Street, Staplehurst, Kent TN12 0AH United
> > > > > Kingdom
> > > > > Registered in England and Wales: 2297906
> > > > > Registered office: Stag Gates House, 63/64 The Avenue, Southampton
> > > > > SO17
> > > > > 1XS
> > > >
> > > >
> > > > Peter
> > > >
> > > > Thank you for your reply.
> > > >
> > > > I did notice that I had the $county_total=mysql_num_rows($result)
> > > > twice.
> > > > I
> > > > had moved and removed it, always getting either a 0 or 1 result.
> > > >
> > > > I put up another test page with
> > > >
> > > > $result = mysql_query("SELECT * FROM `counties` ") or
> > > > die(mysql_error());
> > > >
> > > > $tot=mysql_num_rows($result);
> > > > echo "$tot";
> > > >
> > > > ?>
> > > >
> > > > And it worked fine.
> > > >
> > > > I have tried count() as well as mysql_num_rows() but am getting the
> > > > same
> > > > result.
> > > >
> > > > Could you explain what you mean by count them as I go?
> > > >
> > > > Again, Thank you for your reply.
> > > >
> > > > Gary
> > > >
> > > >
> > > >
> > > > __________ Information from ESET Smart Security, version of virus
> > > > signature database 5895 (20110222) __________
> > > >
> > > > The message was checked by ESET Smart Security.
> > > >
> > > > http://www.eset.com
> > > >
> > > >
> > > >
> > > >
> > >
> > > Well,
> > >
> > > Lets go back to your original code and cut out the decoration:
> > >
> > > $result = mysql_query("SELECT * FROM `counties` WHERE name = 'checked'")
> > > $county_total=mysql_num_rows($result);
> > > while($row = mysql_fetch_array($result))
> > > {
> > > echo $row['name'];
> > > }
> > > echo "$county_total";
> > >
> > > That code should do pretty much what you want...
> > >
> > > But, because you only show the number of records AFTER the loop, you
> > > could
> > > do:
> > >
> > > $result = mysql_query("SELECT * FROM `counties` WHERE name = 'checked'")
> > > $county_total = 0;
> > > while($row = mysql_fetch_array($result))
> > > {
> > > echo $row['name'];
> > > $county_total++;
> > > }
> > > echo "$county_total";
> > >
> >
> > Peter
> >
> > Thank you for your suggestion...btw "cut out the decoration" LOL
> >
> > I'm sorry to report it did not work. I tried various configurations of it
> > but to no avail.
> >
> > Any other suggestions?
> >
> > Again, thank you for your help.
> >
> > Gary
> >
> >
> >
> > __________ Information from ESET Smart Security, version of virus
> > signature database 5895 (20110222) __________
> >
> > The message was checked by ESET Smart Security.
> >
> > http://www.eset.com
> >
> >
> >
> >
>
> Gary,
>
> I'd probably need a bit more detail on the "it did not work" to go much
> further!
> Actually, it looks like I missed a semicolon on the "mysql_query" line in
> *both* versions - maybe that was the problem...
> Do you have access to your server logs, to see if any errors are reported
> when you run this?
>
> Cheers
> Peter
>
> --
> Peter Ford, Developer phone: 01580 893333 fax: 01580
> 893399
> Justcroft International Ltd.
> www.justcroft.com
> Justcroft House, High Street, Staplehurst, Kent TN12 0AH United
> Kingdom
> Registered in England and Wales: 2297906
> Registered office: Stag Gates House, 63/64 The Avenue, Southampton SO17
> 1XS
Peter
I'm sorry, I sort of abandoned this post since I found I had other problems
with the scripts and posted another question above. I have at this point the
checkboxes appearing, the mysql_num_row is not working yet, but that can got
kicked down the road a bit.
Thank you for all your help, I'm trying to formulate me next question for
the aforementioned 2nd post.
Gary
__________ Information from ESET Smart Security, version of virus signature database \
5904 (20110224) __________
The message was checked by ESET Smart Security.
http://www.eset.com
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic