Page 1 of 1

Warning: mysql_num_rows(): supplied argument is not a valid

Posted: Sat Jul 12, 2008 11:52 pm
by arunkar
Hi Experts,

Im a biggner in PHP. Im doing a db query and getting "Warning: mysql_num_rows(): supplied argument is not a valid...... on line 107"

Code: Select all

 
if (!($_GET["indusparamstring"]==NULL)){ // this code gets executed!
    
        $query = "SELECT p.ProjectTitle, p.ProjectOrgName, p.ProjectCostUSD,
                r.ProjectRegion, c.ProjectCategoryName, b.ProjectBeneficiaryName, p.ProjectStory
            FROM tbl_projects p
            JOIN tbl_projects_regions r USING (ProjectRegionID)
            JOIN tbl_projects_categories c ON p.ProjectCatID=c.ProjectCategoryID
            JOIN tbl_projects_beneficiary b ON p.ProjectBeneficiaryID=b.ProjectBeneficiaryID
            JOIN tbl_industry_projects_link i ON p.ProjectID=i.ProjectsID
            WHERE i.IndustryExampleID=$industryid
            ORDER BY ProjectRegion, ProjectCountry, ProjectCategoryName, ProjectBeneficiaryName, ProjectCostUSD"; 
    }
    else {
        $query = "SELECT ProjectTitle, ProjectID, s.ProjectOrgJosUserID, ProjectOrgName, r.ProjectRegion, ProjectCountry, ProjectStory, ProjectPicURL, ProjectCostUSD, b.ProjectBeneficiaryName, c.ProjectCategoryName  
    FROM tbl_projects s   
        INNER JOIN jos_users js ON js.id = s.ProjectOrgJosUserID    
        INNER JOIN tbl_projects_regions r       ON r.ProjectRegionID = s.ProjectRegionID    
        INNER JOIN tbl_projects_categories c    ON c.ProjectCategoryID = s.ProjectCatID 
        INNER JOIN tbl_projects_beneficiary b   ON b.ProjectBeneficiaryID = s.ProjectBeneficiaryID 
        WHERE  r.ProjectRegion LIKE '$regionList' AND c.ProjectCategoryName LIKE '$categoryList' 
        AND b.ProjectBeneficiaryName LIKE '$beneficiaryList'  
        AND ProjectCostUSD BETWEEN '$valueRange1' AND '$valueRange2' 
        ORDER BY ProjectRegion, ProjectCountry, ProjectCategoryName, ProjectBeneficiaryName, ProjectCostUSD $sortValue "; 
    }
 
$result = mysql_query($query);
    echo "<br><br><br>query = ".$query;
 
$num_record = mysql_num_rows($result); // Error is on this line...
 
When I echo "<br><br><br>query = ".$query;

I get the below query on my browser:

Code: Select all

SELECT p.ProjectTitle, p.ProjectOrgName, p.ProjectCostUSD, r.ProjectRegion, c.ProjectCategoryName, b.ProjectBeneficiaryName, p.ProjectStory FROM tbl_projects p JOIN tbl_projects_regions r USING (ProjectRegionID) JOIN tbl_projects_categories c ON p.ProjectCatID=c.ProjectCategoryID JOIN tbl_projects_beneficiary b ON p.ProjectBeneficiaryID=b.ProjectBeneficiaryID JOIN tbl_industry_projects_link i ON p.ProjectID=i.ProjectsID WHERE i.IndustryExampleID=69 ORDER BY ProjectRegion, ProjectCountry, ProjectCategoryName, ProjectBeneficiaryName, ProjectCostUSD
the above code runs and gives me the required output on the mysql 4.1.2

Im not sure where I gorn wrong :?: ... the second query in the else statement works fine though...

Kindly help me pls. :idea:

Thanks in advance :)

Re: Warning: mysql_num_rows(): supplied argument is not a valid

Posted: Sun Jul 13, 2008 4:42 am
by jaoudestudios
The Warning: mysql_num_rows(): message, is because when you use this function the result returned from the query must have at least one result in it otherwise this line will throw an warning message.

Use this instead...

Code: Select all

 
if ($result) {
  $num_record = mysql_num_rows($result);
}