Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema PHP y base de datos

Estas en el tema de Problema PHP y base de datos en el foro de PHP en Foros del Web. Estimados. Tengo un problema, diseñe una pagina con base de datos y desde mi localhost ningún problemas, pero cuando la subí al hosting de mi ...
  #1 (permalink)  
Antiguo 11/09/2014, 19:01
 
Fecha de Ingreso: septiembre-2014
Mensajes: 3
Antigüedad: 9 años, 7 meses
Puntos: 0
Exclamación Problema PHP y base de datos

Estimados.
Tengo un problema, diseñe una pagina con base de datos y desde mi localhost ningún problemas, pero cuando la subí al hosting de mi cliente en algunos casos me manda el siguiente error.

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/dominio/public_html/php/class.php on line 52

Código:
public function get_pro_id($idcat){
		$sql = "SELECT * from producto WHERE fkCat = '$idcat'";
		$res = Conectar::con()->query($sql);
		while ($reg = $res->fetch_assoc()) {
			$this->producto[] = $reg;
		}
		if (count($this->producto) == 0) {
			header("LOCATION:/404");
		}
		else if (count($this->producto) != 0 ) {

			return $this->producto;
		}
		
	}
El código muestra productos de una categoría, en la cual tengo como 7 u 8 categorías, pero siempre me sucede con una sola ... y como dije anteriormente, es frecuente. y no creo que sea problema que no la encuentra en la BD, porque las categorias se llaman de la base de datos tambien, es decir listo las categorias de la base de datos y al seleccionar una muestra los productos de esa categoria...

Lo otro es que me manda error de conexión con la BD, al igual que el problema anterior es en algunas ocasiones y la verdad no se como solucionarlo.

Código:
Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'nombre'@'dominio' (using password: YES) in /home/dominio/public_html/php/class.php on line 10

Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in /home/dominio/public_html/php/class.php on line 11

Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in /home/dominio/public_html/php/class.php on line 77

Fatal error: Call to a member function fetch_array() on a non-object in /home/dominio/public_html/php/class.php on line 78
Les dejo la conexión que tengo...

Código:
public static function con(){
		$host = "dominio";
		$user = "usuario";
		$pass = "contraseña";
		$db = "base de datos";
		$con = new mysqli($host,$user,$pass,$db);
		$con->query("SET NAMES 'utf8'");
		return $con;
	}
aparte de tener la web en mi localhost, anteriormente la tenia en un hosting gratuito en el cual tampoco presentaba fallas

De antemanos agradezco su ayuda :(

Última edición por emmanuel92; 11/09/2014 a las 19:25
  #2 (permalink)  
Antiguo 11/09/2014, 20:28
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema PHP y base de datos

Cita:
Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'nombre'@'dominio' (using password: YES) in /home/dominio/public_html/php/class.php on line 10
simplemente el usuario de mysql que estas indicando esta errado y al estar errado no hay conexión con mysql lo cual no permite a mysqli hacer querys ni nada por el estilo.

Otra coas esto
Código PHP:
Ver original
  1. if (count($this->producto) == 0) {
  2.             header("LOCATION:/404");
  3.         }
  4.         else if (count($this->producto) != 0 ) {
es una redundancia
con solo hacer
Código PHP:
Ver original
  1. if (count($this->producto) == 0) {
  2.             header("LOCATION:/404");
  3.         }
  4.         else {
  5. //lo que viene

te funciona ya que si $this->producto es diferente a 0 entrará en el else sin necesidad de hacer otra vez la comparación con el mismo diciendo que sea distinto, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 11/09/2014, 20:56
 
Fecha de Ingreso: septiembre-2014
Mensajes: 3
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Problema PHP y base de datos

Cita:
Iniciado por carlos_belisario Ver Mensaje
simplemente el usuario de mysql que estas indicando esta errado y al estar errado no hay conexión con mysql lo cual no permite a mysqli hacer querys ni nada por el estilo.

Otra coas esto
Código PHP:
Ver original
  1. if (count($this->producto) == 0) {
  2.             header("LOCATION:/404");
  3.         }
  4.         else if (count($this->producto) != 0 ) {
es una redundancia
con solo hacer
Código PHP:
Ver original
  1. if (count($this->producto) == 0) {
  2.             header("LOCATION:/404");
  3.         }
  4.         else {
  5. //lo que viene

te funciona ya que si $this->producto es diferente a 0 entrará en el else sin necesidad de hacer otra vez la comparación con el mismo diciendo que sea distinto, saludos
Ese es el tema, la conexion no esta buena, porque me muestra todos los datos, solo que en algunos como que la BD se cae y me sale error y que no tengo acceso, pero no sé porque sucede
  #4 (permalink)  
Antiguo 12/09/2014, 06:27
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema PHP y base de datos

Verifica que el id de la categoria que falla no tenga comillas o caracteres extraños.
  #5 (permalink)  
Antiguo 14/09/2014, 22:18
 
Fecha de Ingreso: septiembre-2014
Mensajes: 3
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Problema PHP y base de datos

cambie de mysqli a mysql y ahora no tengo ningun problema ... gracias de todos modos

Etiquetas: html, 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 13:18.