| 
	
 | 
 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] 
 |