Foros del Web » Programando para Internet » PHP »

Problema Clase con extends

Estas en el tema de Problema Clase con extends en el foro de PHP en Foros del Web. Hola a todos, mi duda es la siguiente, tengo una clase con extends y funciona correctamente, ahora quiero q este clase se extendida para otra ...
  #1 (permalink)  
Antiguo 22/01/2012, 14:47
Yoi
 
Fecha de Ingreso: noviembre-2008
Mensajes: 144
Antigüedad: 15 años, 5 meses
Puntos: 2
Problema Clase con extends

Hola a todos, mi duda es la siguiente, tengo una clase con extends y funciona correctamente, ahora quiero q este clase se extendida para otra pero no me toma las variables o funciones de la anterior, esta un poco enredado, pero aca pongo un ejemplo:

class variables{
private $usuario;
}

class clasepro extends variables{
function nn(){
}
}

class cart extends clasepro{
function impri(){
echo $usuario;
}
}

no se si ahi se entiende mas o menos, cuando hago un extends para una clase que ya tiene extends, no tomas las variables de la primera clase...

Espero me colaboren, habia escuchado algo de parent::__contruct(); pero no funca... Gracias por la colaboracion...
  #2 (permalink)  
Antiguo 22/01/2012, 14:51
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 Clase con extends

que tanto conoces de clases, por que lo que muestras tienes variables, pero no tienes atributos, además para que los atributos sean visibles para los que heredan de ellas deben de ser public o protected, ya que la visibilidad private es solo para la clase que las declara o pon un ejemplo de como lo estas haciendo
__________________
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 22/01/2012, 15:04
Yoi
 
Fecha de Ingreso: noviembre-2008
Mensajes: 144
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Problema Clase con extends

ok, mira, mas o menos es asi es como tengo las clases:

class variables{
var $hostname_connection = "localhost";
var $database_connection = "clustnet_ecommerce";
var $username_connection = "root";
var $password_connection = "";
}

class clasepro extends variables{
private $conn;
function nn(){
$this->conn= (mysql_connect($this->hostname_connection,$this->username_connection,$this->password_connection)) or die(mysql_error());
mysql_select_db($this->database_connection,$this->conexion );

}

public function pregunta($consulta){
$resultado = mysql_query($consulta,$this->conn);
return $resultado;
}
public function asociado($consulta){
return mysql_fetch_array($consulta);
}

}

class cart extends clasepro{
function impri(){


$qur = "SELECT *FROM tablaWHERE id=" . $cualquiera;

$rst = $this->pregunta($qur);
$row = $this->asociado($rst);
$foto = $row['imagen'];

}
}

mira, mas o menos la tengo asi: el error sale en las siguientes lineas:
$rst = $this->pregunta($qur);
$row = $this->asociado($rst);

Warning: mysql_query() expects parameter 2 to be resource, null given in sitio\conectar.php on line 33

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null given in sitio/conectar.php on line 4
  #4 (permalink)  
Antiguo 22/01/2012, 15:25
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 Clase con extends

La primera sugerencia revisa la referencia de objetos ya que estas trabajando al estilo php4 donde se utilizaba var en ves de la visibilidad en los atributos, además de esto que depures tu query
Código PHP:
Ver original
  1. mysql_query("tu consulta") pr die(mysql_error());
de manera que sepas si hay algun error en tu sentencia SQL, que viendolo desde lo que mostraste lo hay. Ahora vamos un poco mas a tu código especíco

Código PHP:
Ver original
  1. function impri(){
  2.     $qur = "SELECT *FROM tablaWHERE id=" . $cualquiera;
esta variable que estas llenando le estas indicando que el id sea igual a $cualquiera, si te fijas $cualquiera no existe en este método por lo tanto puede que ahí este el error de tu query, además de esto para que el método pregunta funcione correctamente, tendrías que tener el atribto $conn como protegido y no como privado ya que la visibilidad privada no es visible para los hijos sino únicamente para la misma clase, y por lo tanto tu mysql_query no tendria el segundo parámetro que es la conexion, además de esto, el diseño de tus clases no es correcto, ya que para que el método pregunta pueda funcionar tienes que haber llamado al método nn que es donde estableces tu conexión y no veo que lo hagas en lo que me mostraste, te recomiendo que busques un poco en el foro ya que se ha tratado en varias ocaciones el tema de clases para gestionar conexiones con base de datos, saludos y espero que mi comentario te anime a buscar y mejorar tu código
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: clase, extends, variables, usuarios
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 20:46.