2016-03-24 18 views
-1

Ich erhalte diese Fehlermeldung:Warnung: mysql_fetch_assoc() erwartet Parameter 1 Ressource zu sein, boolean gegeben

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\core\functions\users.php on line 70.

Es registriert erfolgreich und es meldet sich erfolgreich; Das Problem ist, dass es mir keine Benutzerdaten gezeigt hat, und geben Sie mir diesen Fehler. Ich bin neu in PHP.

Hier ist mein Code users.php:

function user_data($user_id) { 
     $data = array(); 
     $user_id = (int)$user_id; 
     $func_num_args = func_num_args(); 
     $func_get_args = func_get_args(); 
    if ($func_num_args > 1) { 
     unset($func_get_args[0]); 
    $fields = '`' . implode ('`, `', $func_get_args) . '`'; 

    $data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id")); 

    return $data; 
     } 
} 
    function login($username, $password){ 
     $user_id = user_id_from_username($username); 

     $username = sanitize($username); 
     $password = md5($password); 

     return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username`='$username' AND `password`='$password'"), 0)==1) ? $user_id : false; 
} 
function logged_in() { 
    return (isset($_SESSION['user_id'])) ? true : false; 
} 
function user_exists($username) { 


     $username = sanitize($username); 
     return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` ='$username' "), 0) == 1) ? true : false; 
     } 
    function user_active($username) { 
     $username = sanitize($username); 
     return(mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `active` =1"), 0) == 1) ? true : false; 
    } 

Und mein register.php

<?php 
    include 'core/init.php'; 
    include 'overall/headerr.php'; 
    if (empty($_POST) === false) { 
    $required_fields = array('username', 'password', 'password_again', 'first_name'); 
    foreach($_POST as $key =>$value) { 
    if(empty($value) && in_array($key, $required_fields) === true) { 
     $errors[] = 'Fields marked with an asterisk required'; 
     break 1; 
    } 
    } 
    if (empty($errors) === true){ 
     if (user_exists($_POST['username']) === true) { 
      $errors[] = 'Sorry, the username \'' . $_POST['username'] . '\' is already taken.'; 
     } 
    if (preg_match("/\\s/", $_POST['username'])== true) { 
     $errors[]='Your username must not contain any spaces.'; 
    } 
     if (strlen($_POST['password']) < 6) { 
      $errors[] = 'Your password must be at least 6 characters'; 
     } 
     if ($_POST['password'] !== $_POST['password_again']) { 
        $errors[] = 'Your password do not match'; 

     } 

     } 
     } 

    ?> 

    <h1>Register</h1> 
    <?php 
    if (isset($_GET['success']) === true && empty ($_GET['success']) === false) { 
     echo 'You\'ve been registered successfully!'; 
    }else{ 
    if (empty($_POST) === false && empty ($errors) === true) { 
    $register_data = array(
    'username' => $_POST['username'], 
    'password' => $_POST['password'], 
    'first_name' => $_POST['first_name'], 
    'contact' => $_POST['contact'], 
    'information' => $_POST['information'] 

Antwort

0

allererst Sie 5.5.0 bis msqli als msql ist veraltet in PHP wechseln sollte und entfernt werden in PHP 7.0.0

Dies ist eine doppelte Frage hier ist eine answer, die Ihnen helfen sollte

<?PHP 
$sql = 'some query...'; 
$result = mysql_query($q); 

if (! $result){ 
    throw new My_Db_Exception('Database error: ' . mysql_error()); 
} 

while($row = mysql_fetch_assoc($result)){ 
    //handle rows. 
} 

Note the check on (! $result) -- if your $result is a boolean, it's certainly false, and it means there was a database error, meaning your query was probably bad.

Hier einige zusätzliche Ressourcen von php.net auf msqli_fetch_assoc()

http://php.net/manual/en/mysqli-result.fetch-assoc.php

Hier ist die Info auf msql_fetch_assoc()

http://php.net/manual/en/function.mysql-fetch-assoc.php

+0

Dank @gmaniac – John

+0

veraltet sind Sie Willkommen, froh es half. Wenn es deine Frage gelöst hat, akzeptiere bitte – gmaniac

Verwandte Themen