En CodeIngiter guía del Usuario ,dijeron el siguiente código:

$this->db->where('name', $name);
$this->db->where('title', $title);
$this->db->where('status', $status); 
//WHERE name = 'Joe' AND title = 'boss' AND status = 'active'

Significa que cuando quiero seleccionar alguna cosa de la base de datos de active record,que debo usar where método y lo hará por reemplazar AND entre los campos.
ahora me quiero hacer página de inicio de sesión,hago esto:

public function True_login($username = '',$password = '')
    {
        $this->db->flush_cache();
        $this->db->where('username',$username);
        $this->db->where('password',$password);
        $count = $this->db->count_all_results('PM_ADMIN_LIST');
        if ($count === 1)
        {
            return TRUE;
        }
        else
        {
            return FALSE;
        }
    }

pero devolverá TRUE si username=$username OR password = $password .
si uno de los nombre de usuario o la contraseña se encuentra en la tabla(y $count === 1 devolverá TRUE)
dónde está mi prbolem y cómo debo resolverlo?

De acuerdo a la documentación, llamando a “donde” dos veces para producir una Y consulta. No entiendo cuál es el problema?
Quieres decir que se evalúa como OR en lugar de AND?
Has probado el array Asociativo método? Que codeigniter versión estás usando?

OriginalEl autor Moein Hosseini | 2011-09-26

3 Comentarios

  1. 12
    $this->db->count_all_results('PM_ADMIN_LIST');

    es devolver el número de filas en la tabla y ignorning los restrictores por encima de ella.

    Probar:-

    $this->db->where('username',$username);
    $this->db->where('password',$password);
    $this->db->from('PM_ADMIN_LIST');
    $count = $this->db->count_all_results();

    También, poner un poco de depuración en – si usted supiera lo que el valor de $count fue entonces que puede haber ayudado a usted que el Registro Activo de la consulta fue de mal en vez de pensar que estaba haciendo un OR en lugar de un AND.

    He hecho,pero voy a regresar mismo resultado que en mi código. Traté de $count = $this->db->where(‘username’,$username)->where(‘password’,$password)->get(‘PM_ADMIN_LIST’)->num_rows(); demasiado.pero tiene también este problema.
    El código que he publicado, por favor enviar su versión de el código que se ha intentado.
    lo siento bruce,este es mi culpa.funciona.
    ¿downvote mi respuesta previamente?

    OriginalEl autor Bruce

  2. 2

    Simplemente usar->
    $this->db->count_all();
    en lugar de
    $this->db->count_all_results();
    problema resuelto…….

    OriginalEl autor Sachin

  3. -1

    Añadir el segundo parámetro con valor false en count_all_results() función.

    $this->db->count_all_results('PM_ADMIN_LIST',FALSE);

    OriginalEl autor Avnish alok

Dejar respuesta

Please enter your comment!
Please enter your name here