Twango Posted August 24, 2011 Share Posted August 24, 2011 Hi, the code$result = mysql_query("SELECT usr, xp, hp, level, faction FROM aad WHERE usr LIKE %$rcu%");$row = mysql_fetch_array($result);returnsWarning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/appattac/public_html/aadimensions/rsq.php on line 15Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/appattac/public_html/aadimensions/rsq.php on line 27Help! Link to comment Share on other sites More sharing options...
thescientist Posted August 24, 2011 Share Posted August 24, 2011 obviously something is wrong with your query. what have you done so far to debug it? have you checked the field and table names to make sure they are correct? Have you connected to the database correctly? have you tried adding error handling? $result = mysql_query("SELECT usr, xp, hp, level, faction FROM aad WHERE usr LIKE %$rcu%") or die (mysql_error()); edit: and as mentioned below, are you sure you are implementing 'LIKE' correctly? Link to comment Share on other sites More sharing options...
stoutie Posted August 24, 2011 Share Posted August 24, 2011 Please see the PHP manual for mysql_query().http://php.net/manual/en/function.mysql-query.phpThe mysql_query is not returning a MySQL result resource, and that's why you get the first error.According to the PHP manual, possible return values, in addition to a result resource, are true or false:"For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error . . .. . . mysql_query() will also fail and return FALSE if the user does not have permission to access the table(s) referenced by the query."If you do indeed have permission to the table, your problem is most likely with the LIKE. I believe the value of the LIKE clause must be quoted.http://dev.mysql.com/doc/refman/5.0/en/str...-functions.html Link to comment Share on other sites More sharing options...
stoutie Posted August 24, 2011 Share Posted August 24, 2011 I noticed you started multiple threads.For one, you need to single quote %$rcu%. Secondly, from an alternate thread, it appears you were only getting one row, but actually, the result resource most likely had what you were looking for but you misunderstood how to extract all the rows from it. mysql_fetch_array() only returns one row at a time. You need to run a loop to extract all the rows. When all the rows have been fetched from the resource, it will return false, terminating the loop. My hunch is that you were doing everything else right. Take a look at my test code to see how I use a loop to do this: <?php$db_host = 'localhost';$db_name = 'test';$db_user = 'test';$db_pass = 'aJGsZE393xjDzCLG';// establish database connection$link = mysql_connect($db_host, $db_user, $db_pass) or die('Could not connect: ' . mysql_error());mysql_select_db($db_name) or die('Unable to connect to database: ' . mysql_error());// query the database$rcu = 'King';$result = mysql_query("SELECT id, usr FROM aad WHERE usr LIKE '%$rcu%'") or die (mysql_error());// loop through rows$rows = array();while ($row = mysql_fetch_array($result)){ $rows[] = $row;}// dump resultsvar_dump($result);var_dump($rows);// cleanupmysql_close($link);?> The result: resource(11, mysql result)array 0 => array 0 => string '2' (length=1) 'id' => string '2' (length=1) 1 => string 'KingBar' (length=7) 'usr' => string 'KingBar' (length=7) 1 => array 0 => string '1' (length=1) 'id' => string '1' (length=1) 1 => string 'KingFoo' (length=7) 'usr' => string 'KingFoo' (length=7) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.