поэтому мой код это ..
<?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])."' )"; ?>