Ryan Bayne
asked on
MSSQL query changed to MySQL shows not valid mysql resource
Alright
I worked on this for hours and I'm stuck. Below I pasted the script from a working MSSQL login which I changed to use with MySQL. I know that there are syntax differences and the hours I spent was replacing some of them in this script but I've got no where.
I keep getting invalid mysql result resource. Usually on ($result=mysql_query($sql) ;) however it changes to other lines depending the script.
A fix would be great I'm assuming its a quick thing I cant believe I cant get it working from my MySql book and online!
I worked on this for hours and I'm stuck. Below I pasted the script from a working MSSQL login which I changed to use with MySQL. I know that there are syntax differences and the hours I spent was replacing some of them in this script but I've got no where.
I keep getting invalid mysql result resource. Usually on ($result=mysql_query($sql)
A fix would be great I'm assuming its a quick thing I cant believe I cant get it working from my MySql book and online!
session_start();
$user="##";
$host="##";
$password="##";
$database="##";
mysql_connect("$host", "$user", "$password")or die("cannot connect");
mysql_select_db("$database")or die("cannot select DB");
$sql="SELECT * FROM users WHERE username='$_POST[myusername]' AND pass='$_POST[mypassword]'";
$result=mysql_query($sql);
// mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1) //Login details were found so auth
{
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
the use of double and single quotes, and having to set off variables that are in the form $_POST[] and $_SESSION[], etc always slays me!
ASKER
Well your changes are correct and as you will see in my code below I needed to change the quotes.
I've arrived at a point I did reach myself prior to this question but ended up starting again maybe this time you can help me.
// mssql_num_row is counting table row
$count=mysql_num_rows($res ult);
That line results in... mysql_num_rows(): supplied argument is not a valid MySQL result resource in
I did think there was a different way to do this with mysql but I'm thinking I dreamed that up!
ideas? thanks so far
I've arrived at a point I did reach myself prior to this question but ended up starting again maybe this time you can help me.
// mssql_num_row is counting table row
$count=mysql_num_rows($res
That line results in... mysql_num_rows(): supplied argument is not a valid MySQL result resource in
I did think there was a different way to do this with mysql but I'm thinking I dreamed that up!
ideas? thanks so far
<?php
//Processes attempted login
//Retrieves users access permission and fowards to required page depending on that users authorisation
session_start();
$user="##";
$host="##";
$password="##";
$database="##";
mysql_connect($host, $user, $password)or die("cannot connect");
mysql_select_db("$database")or die("cannot select DB");
$sql='SELECT * FROM users WHERE username="$_POST[myusername]" AND pass="$_POST[mypassword]"';
$result=mysql_query($sql);
// mssql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1 && $level=='closed')//Send to account closed page
{
$_SESSION['auth']="yes";
header("location: index.php?pagecell=closed.php");
}
else if($count==1 && $level=='master')//Send to web master page
{
$_SESSION['auth']="yes";
header("location: index.php?pagecell=admin/webmaster.php");
}
else if($count==1 && $level=='admin')//Send to basic admin area
{
$_SESSION['auth']="yes";
header("location: index.php?pagecell=closed.php");
}
else if($count==1 && $level=='member')//Send to member page
{
$_SESSION['auth']="yes";
header("location: index.php?pagecell=closed.php");
}
else
{
header("location: index.php?cell=pagecells/loginfail.php");
exit();
}
?>
ASKER
I think thats it done. Had to mess around with the quotes and stuff a bit more. Actually I better review what I done I cant remember lol
THANKS
THANKS
<?php
//Processes attempted login
//Retrieves users access permission and fowards to required page depending on that users authorisation
session_start();
$user="root";
$host="localhost";
$password="25130217cmt";
$database="WebTG2008";
mysql_connect($host, $user, $password)or die("cannot connect");
mysql_select_db("$database")or die("cannot select DB");
$sql='SELECT * FROM users WHERE username="$_POST[myusername]" AND password="$_POST[mypassword]"';
$result=mysql_query($sql);
// mssql_num_row is counting table row
$count = mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1 && $level=='closed')//Send to account closed page
{
$_SESSION['auth']="yes";
header("location: index.php?pagecell=closed.php");
}
else if($count==1 && $level=='master')//Send to web master page
{
$_SESSION['auth']="yes";
header("location: index.php?pagecell=admin/webmaster.php");
}
else if($count==1 && $level=='admin')//Send to basic admin area
{
$_SESSION['auth']="yes";
header("location: index.php?pagecell=closed.php");
}
else if($count==1 && $level=='member')//Send to member page
{
$_SESSION['auth']="yes";
header("location: index.php?pagecell=closed.php");
}
else
{
header("location: index.php?cell=pagecells/loginfail.php");
exit();
}
?>
ASKER
oops put database details. dont worry its a test db only on testing environment with no data
So you got the mysql_num_rows to work? You get that error when there is something wrong with the query or there is no data returned. You might be better off saying:
if ($count = mysql_num_rows($result)) {
do something
}
if ($count = mysql_num_rows($result)) {
do something
}