поэтому мой код это ..
<?php $password=(!isset($_POST['password'])); $username=(!isset($_POST['username'])); $username = mysql_real_escape_string($username); $password = mysql_real_escape_string($password); $query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"); $result = mysql_query($query); var_dump($result); $num_rows = $result->$num_rows; if ($num_rows) { echo "username already exist"; } else { $query = "INSERT INTO tb_funcionario (nome_funcionario, username, password) VALUES ( '$_POST[nome_funcionario]', '$_POST[username]', '$_POST[password]' )";; $result = mysql_query($query) or die (mysql_error()); } mysql_query($query); mysql_close($bd_con); ?>
И он всегда дает мне «mysql_query () ожидает, что параметр 1 будет строкой, указанным ресурсом», и я не могу понять, как его решить.
Может мне помочь?
Это ваша проблема:
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"); $result = mysql_query($query);
Вы выполняете запрос в первой строке, который возвращает «ресурс» в результате запроса. Затем на следующей следующей строке вы попытаетесь использовать этот ресурс в качестве другого запроса для повторного запуска. Вам не нужна вторая строка, $result
можно задать в первой строке.
В вашем коде есть лишние / неправильные строки, особенно:
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"); $result = mysql_query($query);
Наверное, вы хотели написать:
$query = "SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"; $result = mysql_query($query);
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"); $result = mysql_query($query);
Это неверно. Вы должны просто назначить строку запроса для $query
– то, что вы делаете, запускает запрос один раз, а затем пытается снова запустить результат запроса в качестве запроса. Вы должны иметь:
$query = "SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"; $result = mysql_query($query);
который даст вам результаты, которые вы ищете.
ваша проблема здесь $query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'");
то вы запускаете mysql_query($query)
и пытаетесь запустить команду в отношении набора результатов, возвращаемого первым оператором, а не строки, как это должно быть на самом деле
Посмотри на это:
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"); $result = mysql_query($query);
Измените его для:
$query = "SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"); $result = mysql_query($query);
Ваша проблема исходит из этих строк:
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"); $result = mysql_query($query);
mysql_query()
функции mysql_query()
дважды.
Ты можешь сделать:
$sql = "SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"; $result = mysql_query($sql);
Или другое:
$result = mysql_query( "SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"; );
<?php $query = "INSERT INTO tb_funcionario (nome_funcionario, username, password) VALUES ( '".mysql_real_escape_string($_POST[nome_funcionario])."', '".mysql_real_escape_string($_POST[username])."', '".mysql_real_escape_string($_POST[password])."' )"; ?>