Tengo un php con una clase
Código PHP:
Ver original
<?PHP class Deportes{ var $bd; public function Deportes($bd){ $this->bd=$bd; } public function getDeportesListado($estado, $reg, $limite){ $sql="select id, rut, dv, nombre, apellidos, deporte, email, fono, region, comuna, to_char(fecha, 'DD-MM-YYYY'::text) as fecha from deportistas where estado=$estado order by id desc offset $reg limit $limite"; $result=$this->bd->ExecuteQuery($sql); do{ $row['id'], $row['rut'], $row['dv'], $row['nombre'], $row['apellidos'], $row['deporte'], $row['email'], $row['fono'], $row['region'], $row['comuna'], $row['fecha'] )); } return $listado; } public function ifDeportista($descripcion){ $sql="select id from musa.deportistas where rut=".$descripcion->getRut()." and lower(dv)='".strtolower($descripcion->getDv())."'"; $result=$this->bd->ExecuteQuery($sql); $_SESSION['deporte']=$row['id']; return true; }else{ return false; } } public function setDeportista($rut, $dv, $nombres, $apellidos, $deporte, $email, $fono, $region, $comuna){ $sql="insert into deportistas (rut, dv, nombres, apellidos, deporte, email, fono, region, comuna) values ($rut, '$dv', '$nombres', '$apellidos', '$deporte', $email, $fono, $region, $comuna)"; $result=$this->bd->ExecuteQuery($sql); return false; }else{ $resultM=$this->bd->ExecuteQuery("select LASTVAL();"); return false; }else{ return true; $_SESSION['idm']=$rowM[0]; } } } } class detalleDeportes{ var $id; var $rut; var $dv; var $nombres; var $apellidos; var $deporte; var $email; var $fono; var $region; var $comuna; var $fecha; public function detalleDeportes($id, $rut, $dv, $nombres, $apellidos, $deporte, $email, $fono, $region, $comuna, $fecha){ $this->id=$id; $this->rut=$rut; $this->dv=$dv; $this->nombres=$nombres; $this->apellidos=$apellidos; $this->deporte=$deporte; $this->email=$email; $this->fono=$fono; $this->region=$region; $this->comuna=$comuna; $this->fecha=$fecha; } public function getId(){ return $this->id; } public function getRut(){ return $this->rut; } public function getDv(){ return $this->dv; } public function getNombres(){ return $this->nombres; } public function getApellidos(){ return $this->apellidos; } public function getDeporte(){ return $this->deporte; } public function getEmail(){ return $this->email; } public function getFono(){ return $this->fono; } public function getRegion(){ return $this->region; } public function getComuna(){ return $this->comuna; } public function getFecha(){ return $this->fecha; } } ?>
y un php que recibe datos
Código PHP:
Ver original
<? include("Deportes.php"); //primer php include("Validaciones.php"); include("bdd.php"); $bd=new BDD(); $bd->Ini(); $Validaciones=new Validaciones(); $Deportes=new Deportes($bd); $estadosG=true; $error=""; $dv=Validaciones::cleanText($_POST['dv']); if(!$rut=Validaciones::cleanText($_POST['rut'])){ $estadosG=false; $error="Debes ingresar el Rut.\\n"; } if(!Validaciones::isRut($rut, $dv)){ $estadosG=false; $error="Rut inválido.\\n"; } if(!$nombres=Validaciones::cleanText($_POST['nombres'])){ $estadosG=false; $error="Debes ingresar el nombre.\\n"; } if(!$apellidos=Validaciones::cleanText($_POST['apellidos'])){ $estadosG=false; $error="Debes ingresar el Apellido.\\n"; } $email=Validaciones::cleanText($_POST['email']); Validaciones::isEmail($email); $fono=Validaciones::cleanText($_POST['fono']); Validaciones::isNumeric($fono); if(!$region=Validaciones::cleanText($_POST['region'])){ $estadosG=false; $error="Debes seleccionar la Región.\\n"; } if(!$comuna=Validaciones::cleanText($_POST['comuna'])){ $estadosG=false; $error="Debes seleccionar la Comuna.\\n"; } if(!$deporte=Validaciones::cleanText($_POST['deporte'])){ $estadosG=false; $error="Debes seleccionar un deporte.\\n"; } if(!$fecha=Validaciones::cleanText($_POST['fecha'])){ $estadosG=false; $error="Debes seleccionar el trato del Doctor.\\n"; } if($estadosG){ $Deportes= new detalleDeportes(0, $rut, $dv, $nombres, $apellidos, $deporte, $email, $fono, $region, $comuna, ''); } if($estadosG){ if(!$Deportes->ifDeportista($detalleDeportes)){ if(!$Deportes->setDeportista($rut, $dv, $nombres, $apellidos, $deporte, $email, $fono, $region, $comuna)){ $estadosG=false; $error="Datos no registrados"; } } } $bd->EndCommit($estadosG); if($estadosG){ }else{ $_SESSION['error']=$error; $_SESSION['pdata']=$_POST; } ?>
Mi problema viene aqui, que cuando quiero guardar el fomulario, me aparece el siguiente error Fatal error: Call to a member function getRut() on a non-object en la clase.
No se que estoy haciendo mal, si me pueden ayudar para que si existe el deportista no registre datos, pero si al consultar el rut no esta en la bdd, que me lo inserte en la base.
Muchas gracias.
Saludos