|
Posted by mantrid on 12/01/07 20:02
"Jerry Stuckle" <jstucklex@attglobal.net> wrote in message
news:i8WdnTCdEvI2Wc3anZ2dnUVZ_ommnZ2d@comcast.com...
> mantrid wrote:
> > Ok
> > Im an idiot. It was the sql, but not because the syntax was wrong. It
was
> > just that the sql was using variables taken from rows of a text file.
> >
> > while (($data = fgetcsv($handle, 1500)) !== FALSE) {
> > list($imptype,$impuserid, $impmyvarid,$impcompanyid, $impaimlisted,
> > $impamount, $impprice, $impstamp, $impcomm, $impdate,$imptime) = $data;
//
> > explode(",", $data)
> > .....
> > .....
> > .etc
> > }
> >
> > and i recently modified the structure of the text file without making
> > appropriate changes in the php. tut tut
> >
> > Thank for your interest
> > Ian
> >
> >
> >
> > "mantrid" <ian.dandav@virgin.net> wrote in message
> > news:Wj04j.74$1j1.72@newsfe7-gui.ntli.net...
> >> I am getting the following error. I cant see what is wrong. I am
probably
> >> overlooking something obvious, can anyone see what is wrong ? The sql
is
> > ok
> >> as used elsewhere. Problem only occurs when i include the
mysql_num_rows()
> >> function
> >>
> >>
> >> Warning: mysql_num_rows(): supplied argument is not a valid MySQL
result
> >> resource in /home/iddsoftw/public_html/cgtcalc/addcomp.php on line 76
> >>
> >>
> >> $sql30daycheck = "SELECT * FROM cgttransactions WHERE
> >> companyid=$impcompanyid AND selldatetime IS NOT NULL AND bbprice IS
NULL
> > AND
> >> selldatetime >=DATE_SUB('".$impdatetime."', INTERVAL 30 DAY) ORDER BY
> >> selldatetime DESC "; //LIMIT 1 DATE(NOW()) > finstart AND DATE(NOW()) <
> >> DATE_ADD(finstart, INTERVAL 1 YEAR)"
> >>
> >> **************************
> >> if(mysql_num_rows(mysql_query($sql30daycheck))){
<<<<<<<<
> >> line 76
> >> $q30daycheck = mysql_query($sql30daycheck);
> >> while($r30daycheck =& mysql_fetch_array($q30daycheck)) {
> >> extract($r30daycheck);
> >>
> >> ******* some code here using $r30daycheck ******
> >> }
> >> }
> >>
> >> ******************
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >
> >
> >
>
> But the other comments are still valid.
>
> Right now you're calling mysql_query() twice; the second call is
> completely unnecessary and causes additional overhead on MySQL and your
> script.
>
> Rather, do this:
>
> $q30daycheck = mysql_query($sql30daycheck);
> if (mysql_num_rows($q309daycheck)) {
> while($r30daycheck =& mysql_fetch_array($q30daycheck)) {
> extract($r30daycheck);
> ...
>
> And please - RENAME YOUR VARIABLES. Having two 12 character variables
> which differ only by the first character is confusing and encourages
> errors in your code.
>
> For instance - use $result for the request from the query. Much easier
> to understand.
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstucklex@attglobal.net
> ==================
>
"Right now you're calling mysql_query() twice; the second call is
completely unnecessary and causes additional overhead on MySQL and your
script."
Your are correct. I always do it your way, honestly. I posted the code I had
just been playing around with trying different things to see if I could get
it working. Hence the messiness of it with all the commented out code etc.
> And please - RENAME YOUR VARIABLES. Having two 12 character variables
> which differ only by the first character is confusing and encourages
> errors in your code.
You are right again. This is a habit of mine. I do it so i can identify
different calls to the database on the same page. I could use $result1,
$result2 etc. but this makes it easier for me. Also the small difference is
always at the front and follows the same pattern
$sqlsomething for the sql statement, $qsomething for the mysql_query,
$rsomething for the mysql_fetch etc. It makes sense for me and im not in a
team so dont have the problem of others needing to read my code
[Back to original message]
|