|
Posted by Jerry Stuckle on 12/01/07 02:19
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
==================
[Back to original message]
|