Autor Tema: Fatal Error  (Leído 1010 veces)

Desconectado MaNuX

  • PHPero Avanzado
  • ****
  • Mensajes: 385
  • Karma: 4
  • Sexo: Masculino
  • PHP & MySQL
    • Ver Perfil
    • CliKys
Fatal Error
« en: 07 de Octubre de 2010, 13:12:34 pm »
Hola aver si me pueden echar una mano con el siguiente error que me aparece:

Citar
Fatal error: Call to a member function num_rows() on a non-object in /home/directorio/www/application/models/applicationmodel.php on line 89

Aqui le dejo la linea donde da el error.

Código: [Seleccionar]
if ($langQuery->num_rows() > 0)
Saludos.


Comunidad PHPeros

Fatal Error
« en: 07 de Octubre de 2010, 13:12:34 pm »

Desconectado Jumarras

  • PHPer@
  • **
  • Mensajes: 73
  • Karma: 3
  • Sexo: Masculino
  • Ten cerca a tus amigos, pero mas a tus enemigos
    • Ver Perfil
Re:Fatal Error
« Respuesta #1 en: 07 de Octubre de 2010, 16:41:14 pm »
Hola, si estas consultando desde la mysql, esa llamada esta mal hecha, deveria ser asi:

if (mysql_num_rows($query) > 0)
{}

Donde el $query, deveria ir la mysql_query() que haces a la base de datos.

Salu2

Desconectado MaNuX

  • PHPero Avanzado
  • ****
  • Mensajes: 385
  • Karma: 4
  • Sexo: Masculino
  • PHP & MySQL
    • Ver Perfil
    • CliKys
Re:Fatal Error
« Respuesta #2 en: 07 de Octubre de 2010, 17:28:16 pm »
Sigue saltandome el error, pero te dejo el codigo completo, el error esta en la linea 89

Código: [Seleccionar]
<?php

class Applicationmodel extends Model
{
        function 
Applicationmodel()
        {
                
parent::Model();
        }
        function 
getApplications($onlyBasic false)
        {
                if (
$onlyBasic == true$appQuery $this->db->query(&#39;SELECT * FROM applications WHERE user_id=0&#39;);
                
else  $appQuery $this->db->query(&#39;SELECT * FROM applications&#39;);
                
if ($appQuery->num_rows() > 0)
                {
                        
$applications = array();
                        foreach (
$appQuery->result_array() as $appRow)
                        {
                                
$applications[$appRow[&#39;application_id&#39;]] = $appRow;
                        
}
                        return 
$applications;
                }
                else  return 
false;
        }
        function 
getUserApplications()
        {
                
$this->db->select(&#39;application_ids&#39;);
                
$this->db->where(&#39;user_id&#39;, $this->session->userdata(&#39;user_id&#39;));
                
$this->db->limit(10);
                
$userAppQuery $this->db->get(&#39;users_applications&#39;);
                
if ($userAppQuery->num_rows() > 0)
                {
                        
$userAppRow $userAppQuery->result_array();
                        
$appQuery $this->db->query(&#39;SELECT * FROM applications WHERE application_id IN (&#39; . $userAppRow[0][&#39;application_ids&#39;] . &#39;)&#39;);
                        
if ($appQuery->num_rows() > 0)
                        {
                                
$applications = array();
                                foreach (
$appQuery->result_array() as $appRow)
                                {
                                        
$applications[$appRow[&#39;application_id&#39;]] = $appRow;
                                
}
                                return 
$applications;
                        }
                        else  return 
false;
                }
                else  return 
false;
        }
        function 
isApplication($appName)
        {
                
$this->db->where(&#39;application_name&#39;, $appName);
                
$this->db->limit(10);
                
$appQuery $this->db->get(&#39;applications&#39;);
                
if ($appQuery->num_rows() > 0)
                {
                        
$appRow $appQuery->result_array();
                        return 
$appRow[0][&#39;application_id&#39;];
                
}
                else  return 
false;
        }
        function 
isUserCanAccessTheApplication($applicationId)
        {
                
$this->db->select(&#39;application_ids&#39;);
                
$this->db->where(&#39;user_id&#39;, $this->session->userdata(&#39;user_id&#39;));
                
$this->db->limit(10);
                
$userAppQuery $this->db->get(&#39;users_applications&#39;);
                
if ($userAppQuery->num_rows() > 0)
                {
                        
$userAppRow $userAppQuery->result_array();
                        
$userAppArray explode(&#39;,&#39;, $userAppRow[0][&#39;application_ids&#39;]);
                        
if (array_search($applicationId$userAppArray) === false) return false;
                        else  return 
true;
                }
                else  return 
false;
        }
        function 
getLanguages()
        {
                
$this->db->select(&#39;lang_code, lang_name&#39;);
                
$this->db->from(&#39;languages&#39;);
                
$langQuery $this->db->get();
                
$languages = array();
                if (
$langQuery->num_rows() > 0)
                {
                        foreach (
$langQuery->result_array() as $langRow)
                        {
                                
$languages[] = $langRow;
                        }
                }
                return 
$languages;
        }
}

?>

Saludos.


Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:Fatal Error
« Respuesta #3 en: 07 de Octubre de 2010, 18:59:01 pm »
agregale un or die para que sea mas especifico

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:Fatal Error
« Respuesta #4 en: 07 de Octubre de 2010, 23:08:15 pm »
Debes conocer que devuelve $this->db->get.
Ahí estas teniendo en cuenta que eso devuelve un objeto, aunque no lo devuelve, porque sino no te daría ese error.
Seguramente, lo que te devolverá (simplemente mirando el nombre) será un array.
Así que, probablemente, lo que quieres saber es si hay mas de 0 elementos en el array, que para eso necesitas la función count.

Osea, que nada de num_rows(), eso es para el objeto que te devuelve cuando haces una query, tu necesitas count
Cambias if ($langQuery->num_rows() > 0) por
if (count($langQuery) > 0)
Y debería funcionar en principio, dependiendo de que te devuelve el método get()

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado MaNuX

  • PHPero Avanzado
  • ****
  • Mensajes: 385
  • Karma: 4
  • Sexo: Masculino
  • PHP & MySQL
    • Ver Perfil
    • CliKys
Re:Fatal Error
« Respuesta #5 en: 08 de Octubre de 2010, 09:26:53 am »
Debes conocer que devuelve $this->db->get.
Ahí estas teniendo en cuenta que eso devuelve un objeto, aunque no lo devuelve, porque sino no te daría ese error.
Seguramente, lo que te devolverá (simplemente mirando el nombre) será un array.
Así que, probablemente, lo que quieres saber es si hay mas de 0 elementos en el array, que para eso necesitas la función count.

Osea, que nada de num_rows(), eso es para el objeto que te devuelve cuando haces una query, tu necesitas count
Cambias if ($langQuery->num_rows() > 0) por
if (count($langQuery) > 0)
Y debería funcionar en principio, dependiendo de que te devuelve el método get()

Saludos!

Nada ahora me salta el siguiente error:

Fatal error: Call to a member function result_array() on a non-object in /home/directorio/www/application/models/applicationmodel.php on line 91

Saludos.


Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:Fatal Error
« Respuesta #6 en: 08 de Octubre de 2010, 12:38:36 pm »
Claro, pero ahora te salta en otra linea, es decir, que el problema anterior ya esta resuelto, vamos con este.
Mira, como consejo, ese codigo no es tuyo ¿verdad?
Quiero decir, que lo has descargado de algún sitio y estas intentando hacerlo funcionar.

Así es bastante dificil, porque no sabemos que devuelve cada método.
Documentate sobre el, aprende a usarlo, y así.
Lo que estas intentando es cambiar códigos por otros sin saber lo que hacen, y eso se traduce en catastróficos problemas.

Aprende PHP, luego aprende ese código, documentate sobre él, y entonces trabaja con el.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado MaNuX

  • PHPero Avanzado
  • ****
  • Mensajes: 385
  • Karma: 4
  • Sexo: Masculino
  • PHP & MySQL
    • Ver Perfil
    • CliKys
Re:Fatal Error
« Respuesta #7 en: 09 de Octubre de 2010, 15:42:25 pm »
Claro, pero ahora te salta en otra linea, es decir, que el problema anterior ya esta resuelto, vamos con este.
Mira, como consejo, ese codigo no es tuyo ¿verdad?
Quiero decir, que lo has descargado de algún sitio y estas intentando hacerlo funcionar.

Así es bastante dificil, porque no sabemos que devuelve cada método.
Documentate sobre el, aprende a usarlo, y así.
Lo que estas intentando es cambiar códigos por otros sin saber lo que hacen, y eso se traduce en catastróficos problemas.

Aprende PHP, luego aprende ese código, documentate sobre él, y entonces trabaja con el.

Saludos

Si cierto, no es mio.

Es un script, pero vino con ese error y queria arreglarlo para que me funcionara, pero tienes toda la razón antes tengo que documentarme más ya que e comprobado que utilizada php antiguo, etc...

Gracias, pueden cerrar tema.