Noxxia Posted October 11, 2009 Share Posted October 11, 2009 I've spent the last hour and a half trying to figure out what I'm doing wrong by looking through various forums without any luck. Basically, I'm getting this wonderful error: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource I originally had a string with a bunch of variables in it and thought that was the problem. So I just hard coded a MySQL query that works in the Starfields, Inc. SQL tab. SELECT `Noxxia9`.`UserData`.* FROM `Users` INNER JOIN `UserData` ON `Users`.`UserId` = `UserData`.`UserId` AND `Users`.`Username` = 'flipsIX' This produces the proper result I'm looking for, So I then put that into my php function, knowing that obviously without variables it won't function correctly, but at least I shouldn't get the error because I won't be returning an empty result. $queryString = "SELECT `Noxxia9`.`UserData`.* FROM `Users` INNER JOIN `UserData` ON `Users`.`UserId` = `UserData`.`UserId` AND `Users`.`Username` = 'flipsIX'"; $selectQuery = mysql_query($queryString, $conDB); return mysql_fetch_array($selectQuery); I will still get the error. I'm new to SQL and have only been working with it for a few days. My php isn't great, but i'm not a complete idiot about it. There's obviously something I'm not catching though. Anyone have any ideas? Btw, any of my other mysql_query function calls with a similar sort of $queryString works just fine. This is the only one to work and the only one with a JOIN, but I coudln't possibly be the join could it? I don't understand how that would matter since mysql_query returns a resource identifier, but maybe there's soemthing about that I don't understand :/ Thanks Quote Link to comment https://forums.phpfreaks.com/topic/177359-solved-mysql_fetch_array-problems/ Share on other sites More sharing options...
.josh Posted October 12, 2009 Share Posted October 12, 2009 you said you have another mysql_query that works. Is it in the same script as this one? I'm wondering if you failing to connect to the db in the first place. Quote Link to comment https://forums.phpfreaks.com/topic/177359-solved-mysql_fetch_array-problems/#findComment-935164 Share on other sites More sharing options...
.josh Posted October 12, 2009 Share Posted October 12, 2009 I see a return in there. That means you're in a method or function. And you are using $conDB. Is this set outside of the function? You do not need to assign mysql_connect to a variable. But if you do, it is not automatically (super)global. You can probably remove it from mysql_query in your function and php will try to use it automatically. If that don't work, put global $conDB; inside your function. Quote Link to comment https://forums.phpfreaks.com/topic/177359-solved-mysql_fetch_array-problems/#findComment-935167 Share on other sites More sharing options...
Noxxia Posted October 12, 2009 Author Share Posted October 12, 2009 Yeah, on the same page in fact. This is my attempt at getting a users data from a seperate table after authenticating for login. I'm able to compare the username and password just fine, then when it gets to that stuff, which isi n a seperate function, that won't work. My actual code looks like this: function getUserData($username) { $queryString = "SELECT `Noxxia9`.`UserData`.* FROM `Users` INNER JOIN `UserData` ON `Users`.`UserId` = `UserData`.`UserId` AND `Users`.`Username` = '$username'"; //$queryString = "SELECT `Noxxia9`.`UserData`.* FROM `Users` INNER JOIN `UserData` ON `Users`.`UserId` = `UserData`.`UserId` AND `Users`.`Username` = 'flipsIX'"; $selectQuery = mysql_query($queryString, $conDB); $result = mysql_fetch_array($selectQuery); return $result; } here's anotherone that works on the same page. function pwCheck($username, $password, $conDB, $dbName, $tableName) { $queryString = "SELECT * FROM `$dbName`.`$tableName` WHERE `Username` = '$username' AND `Password` = '$password'"; $selectQuery = mysql_query($queryString, $conDB); $result = mysql_fetch_array($selectQuery); if ($result == "") { return false; } else { return true; } } these used to be on the same page of generic functions i've made for myself in case I need them later, but I moved the first one listed (the one i'm having trouble with) to the same page as the login page thinking that maybe I messed up passing parameters. I turned it from generic into very literal to help me narrow down the problem, and actually generated another, but this might help solve it. Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource <dir stuff> on line 54 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource <dir stuff> on line 55 line 54 and line 55 are in getUserData(). the second function listed, works just fine and is only called 2 lines prior to the first function listed. $password = encryptPW(); $validUser = pwCheck($_POST["username"], $password, $conNoxxia9, "Noxxia9", "Users"); if ($validUser) { $userData = getUserData($_POST["username"]); Quote Link to comment https://forums.phpfreaks.com/topic/177359-solved-mysql_fetch_array-problems/#findComment-935173 Share on other sites More sharing options...
Noxxia Posted October 12, 2009 Author Share Posted October 12, 2009 I see a return in there. That means you're in a method or function. And you are using $conDB. Is this set outside of the function? You do not need to assign mysql_connect to a variable. But if you do, it is not automatically (super)global. You can probably remove it from mysql_query in your function and php will try to use it automatically. If that don't work, put global $conDB; inside your function. ooops...you made me realize one mistake. I forgot to do that after moving the function. i still end up with my original error rather than the 2 errors now. that was the reason I got two of them. Quote Link to comment https://forums.phpfreaks.com/topic/177359-solved-mysql_fetch_array-problems/#findComment-935175 Share on other sites More sharing options...
.josh Posted October 12, 2009 Share Posted October 12, 2009 ..and i think that's what your problem is. In the one you listed that works, you are passing it as an argument. Quote Link to comment https://forums.phpfreaks.com/topic/177359-solved-mysql_fetch_array-problems/#findComment-935176 Share on other sites More sharing options...
Noxxia Posted October 12, 2009 Author Share Posted October 12, 2009 Still not working. Do I maybe need to close the connection and then reopen it? Quote Link to comment https://forums.phpfreaks.com/topic/177359-solved-mysql_fetch_array-problems/#findComment-935180 Share on other sites More sharing options...
Noxxia Posted October 12, 2009 Author Share Posted October 12, 2009 bad sql command. forgot to put USE >.< Quote Link to comment https://forums.phpfreaks.com/topic/177359-solved-mysql_fetch_array-problems/#findComment-935203 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.