2016-01-26 3 views
-2
<?php 
    include('connection/connection.php'); 

    $uname=$_POST['uname']; 
    $password=$_POST['password']; 

    $sql=mysql_query("SELECT * FROM elemschool_admin WHERE admin_UName='$uname' AND admin_pass='$password'"); 
    $sql1=mysql_query("SELECT * FROM elemschool_faculty WHERE facultyID='$uname' AND faculty_password='$password'"); 
    $row=mysql_fetch_assoc($sql1); 

    $cout=mysql_num_rows($sql); 
    $cout1=mysql_num_rows($sql1); 

    if($cout>0){ 
     $_SESSION['id']=$uname; 
     header("location: modules/admin/index.php"); 
    } 
    else{ 
     ?> 
     <script> 
      alert("Wrong Input!"); 
      window.location="index.php"; 
     </script> 
     <?php 
    } 
?> 

Я получил ошибку:Параметр рассогласования mysql_fetch_assoc()

warning:mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in

+0

Многие вещи могут быть причиной этой проблемы. Возможно, ваши POST-переменные пусты, возможно, их нужно экранировать ... – Phiter

ответ

0
  1. Там, скорее всего, ошибка в запросе SQL в связи с mysql_fetch_assoc возвращающая логическое значение (скорее всего ложная, например, не удалось запрос). Используйте функцию mysql_error, чтобы найти проблему.

  2. mysql_* амортизируется, пожалуйста, переключитесь на mysqli_*

  3. Побег все ваши ввода с помощью подготовленных запросов в mysqli или, по крайней мере, с помощью escape_string, чтобы избежать инъекции SQL.

0

ПРИМЕЧАНИЕ Функции mysql_ устарели и будут удалены с предстоящей версии PHP 7.

Проверить $result перед передачей его в mysql_fetch_array. Вы обнаружите, что это неверно, потому что запрос завершился неудачно. См. Документацию mysql_query для возможных возвращаемых значений и предложений о том, как с ними бороться.

См Этот пример:

$username = mysql_real_escape_string($_POST['username']); 
$password = $_POST['password']; 
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'"); 

if($result === FALSE) { 
    die(mysql_error()); // TODO: better error handling 
} 

while($row = mysql_fetch_array($result)) 
{ 
    echo $row['FirstName']; 
}