[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