inquisitive Posted August 18, 2008 Share Posted August 18, 2008 Here is the error; Warning: mysql_fetch_array(): 7 is not a valid MySQL...and the line is that errors is the while statement at the end... The following is the code: <?php if(isset($_POST['mysubmit'])) switch($_POST['type_account']) { case "pr_specialist": $type = "PRSpecialist"; break; case "contractors": $type = "Contractor"; break; case "students": $type = "Student"; break; case "admin": $type = "admin"; break; /* more */ } $query = "SELECT * FROM users WHERE pending = 0 AND type = '$type'"; $result = mysql_query($query) or die(mysql_error()); while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { /* parse rows */ ?> Quote Link to comment Share on other sites More sharing options...
Xurion Posted August 18, 2008 Share Posted August 18, 2008 Put an echo to see how many rows you have in your result set. I'm gona guess you have none, and that's what's causing your error: echo mysql_num_rows($result); Quote Link to comment Share on other sites More sharing options...
inquisitive Posted August 18, 2008 Author Share Posted August 18, 2008 The number 2 comes up on my page...when the ehco is put in Quote Link to comment Share on other sites More sharing options...
inquisitive Posted August 18, 2008 Author Share Posted August 18, 2008 Why don't you think my result variable is storing anything...? Quote Link to comment Share on other sites More sharing options...
PFMaBiSmAd Posted August 18, 2008 Share Posted August 18, 2008 The code inside of the while() loop is overwriting $result. How do I know this? Your mysql_query() has an or die() statement that would prevent the while loop from being executed at all if there was no result resource (and this has nothing to do with how many rows there are in the result set because a result set with zero rows returns a result resource.) Quote Link to comment Share on other sites More sharing options...
inquisitive Posted August 18, 2008 Author Share Posted August 18, 2008 this use to work...then it just crashed....how would i make it then so it retrieves all data..instead of just a single record... Quote Link to comment Share on other sites More sharing options...
Xurion Posted August 18, 2008 Share Posted August 18, 2008 Try this <?php if(isset($_POST['mysubmit'])){ switch($_POST['type_account']) { case "pr_specialist": $type = "PRSpecialist"; break; case "contractors": $type = "Contractor"; break; case "students": $type = "Student"; break; case "admin": $type = "admin"; break; } $query = "SELECT * FROM users WHERE pending = 0 AND type = '$type'"; $result = mysql_query($query) or die(mysql_error()); while ($line = mysql_fetch_assoc($result)) { print_r($line); } } ?> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.