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

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
arunkar
Forum Commoner
Posts: 50
Joined: Mon Feb 25, 2008 10:37 pm

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

Post 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 :)
User avatar
jaoudestudios
DevNet Resident
Posts: 1483
Joined: Wed Jun 18, 2008 8:32 am
Location: Surrey

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

Post 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);
}
 
Post Reply