Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Fetch_assoc on a non-object

Estas en el tema de Fetch_assoc on a non-object en el foro de PHP en Foros del Web. Buenas, quisiera que me dieran una mano con este codigo, ya que no logro recorrer los resultados obtenidos de la DB dado a que me ...
  #1 (permalink)  
Antiguo 11/05/2017, 14:18
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 8 meses
Puntos: 12
Fetch_assoc on a non-object

Buenas, quisiera que me dieran una mano con este codigo, ya que no logro recorrer los resultados obtenidos de la DB dado a que me da el error fetch_assoc on a non-object
Código PHP:
<?php

include($_SERVER['DOCUMENT_ROOT'].'/funciones/config.php');

class 
SentenciasSQL extends DBConexion{

    public static function 
ConsultarUsuarios($username){

        
$conexion = new SentenciasSQL;
        
$ConexionMySQL = new DBConexion;

        
$conexion -> username $username;

        try{

            
$ConnectStatus $ConexionMySQL -> MysqlConnect("127.0.0.1""root""""auth");
            
        }catch (
Exception $e){

            echo 
"Error al intentar conectar con el servidor: ".$e;
            
        }

        
$conexion -> sql "SELECT * FROM `account` WHERE `username` = '".$conexion -> username."'";

        
$conexion -> SqlResult $ConnectStatus -> query($conexion -> sql);

        while(
$linea $conexion -> SqlResult -> fetch_assoc()){

            return 
$linea['username'];

        }

    }

    private static 
$username;
    private static 
$sql;
    private static 
$SqlResult;

}

$DBSQL = new SentenciasSQL;
$ResultadoUsuarios $DBSQL -> ConsultarUsuarios("ADMIN");

echo 
$ResultadoUsuarios;

?>
Si lo hiciera de la siguiente forma tampoco me da:
Código PHP:
while($linea mysqli_fetch_assoc($conexion -> SqlResult)){

            return 
$linea['username'];

        } 
Espero su ayuda
  #2 (permalink)  
Antiguo 11/05/2017, 15:45
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Fetch_assoc on a non-object

Veo tu código y me parece que no tienes idea de lo que estas haciendo, tienes muchos errores, de entrada no puedes llamar métodos estáticos como si fueran de instancia, por otro lado créeme no tenemos idea de que hace DBConexion así que es adivinar que es lo que estas haciendo sin la información necesaria.

Mejor agrega la información necesaria necesaria y explica que es lo que quieres hacer no esperes que adivinemos tus intenciones.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 11/05/2017, 19:11
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 8 meses
Puntos: 12
Respuesta: Fetch_assoc on a non-object

Si, la verdad es la primera vez que comienzo con PHP POO

Bueno, he logrado el cometido viendo ejemplos de como llamar a metodos y propiedades estaticas desde Manual de PHP.

Código PHP:

<?php

include($_SERVER['DOCUMENT_ROOT'].'/funciones/config.php');

class 
SentenciasSQL extends DBConexion{

    public static function 
ConsultarUsuarios($username){

        
SentenciasSQL::$username $username;

        try{

            
SentenciasSQL::$MySQL DBConexion::MysqlConnect("127.0.0.1""root""****""auth");
            
        }catch (
Exception $e){

            echo 
"Error al intentar conectar con el servidor: ".$e;
            
        }

        
SentenciasSQL::$sql "SELECT * FROM `account` WHERE `username` = '".SentenciasSQL::$username."'";

        
SentenciasSQL::$SqlResult SentenciasSQL::$MySQL -> query(SentenciasSQL::$sql);

        while(
SentenciasSQL::$linea SentenciasSQL::$SqlResult -> fetch_assoc()){

            return 
SentenciasSQL::$linea['username'];

        }

    }

    private static 
$username;
    private static 
$sql;
    private static 
$SqlResult;
    private static 
$MySQL;
    private static 
$linea;

}

$Resultado SentenciasSQL::ConsultarUsuarios("ADMIN");

echo 
$Resultado;

?>
  #4 (permalink)  
Antiguo 11/05/2017, 21:50
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Fetch_assoc on a non-object

Ya veo y me da gusto que hayas resuelto tu problema y disfruta el logro de lo que hiciste, después vuelve a ver tu código e intenta mejorarlo.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 11/05/2017, 23:23
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 8 meses
Puntos: 12
Respuesta: Fetch_assoc on a non-object

El unico problema que tengo ahora es que no se como saber si la conexion al servidor ha sido exitosa o ha fallado. Ps el connect_errno no me funciona.

¿Me dirias como solucionar eso?

Código PHP:

<?php

class DBConexion{

    public static function 
MysqlConnect($host$user$pass$db){

        
self::$host $host;
        
self::$user $user;
        
self::$pass $pass;
        
self::$db $db;

        
self::$MySQL = new mysqli(self::$host self::$userself::$passself::$db);

        if(
self::$MySQL -> connect_errno){

            return 
"Fallo la conexion al servidor ".self::$host.".";

        }else{

            return 
"Success!";

        }

    }

    private static 
$host;
    private static 
$user;
    private static 
$pass;
    private static 
$db;
    private static 
$MySQL;

}


?>
  #6 (permalink)  
Antiguo 12/05/2017, 05:44
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: Fetch_assoc on a non-object

no debería ser :

Código PHP:
Ver original
  1. if (self::$mysqli->connect_error) {
  2.            
  3.         }
  #7 (permalink)  
Antiguo 14/05/2017, 14:43
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 8 meses
Puntos: 12
Respuesta: Fetch_assoc on a non-object

Cita:
Iniciado por sonystar_17 Ver Mensaje
no debería ser :

Código PHP:
Ver original
  1. if (self::$mysqli->connect_error) {
  2.            
  3.         }
No, no funciona de ninguna manera... ponga lo que ponga me devuelve Success!

Etiquetas: mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:08.