Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/02/2010, 13:59
esaenz22
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años, 10 meses
Puntos: 7
Pregunta problema de registrar datos utilizando clases

buenas. tengo una consulta. estoy haciendo un administrador para ingresar productos. para insertar los datos lo hago con una clase de conexion. pero al momento de ingresar datos me muestra el siguiente error:

Fatal error: Call to a member function query() on a non-object in /home/comunova/public_html/teirsac/admin/servicios/funciones.php on line 7

clase conexion.

Código PHP:
Ver original
  1. class Conexion{
  2.    var $host = DB_SERVER1;
  3.    var $port = DB_PORT1;
  4.    var $user = DB_USER1;
  5.    var $password = DB_PWD1;
  6.    var $db  = DB_1;
  7.    var $idError = 0;
  8.    var $error = "";
  9.    var $link = NULL; // variable compartida para todas las instanicias de la clase
  10.    function Conexion($host = DB_SERVER1, $port = DB_PORT1, $user = DB_USER1, $password = DB_PWD1, $db = DB_1){
  11.     // parametros opcionales, tienen valores por defecto
  12.        $this->host = $host;
  13.        $this->port = $port;
  14.        $this->db    = $db;
  15.        $this->user = $user;
  16.        $this->password = $password;
  17.    }
  18.    // solo se conecta si es que la variable $link no esta cargada
  19.    // o no esta activa la conexion
  20.    function conectarse(){
  21.         if(!$this->estaConectada()){// si la conexion NO esta activa
  22.             $this->link = @mysql_connect($this->host,$this->user,$this->password);
  23.             // la @ evita que se imprima el error
  24.             if (!$this->link) {
  25.                 die( "<p class='error'>Problemas de conexion con la base de datos.</p>");
  26.             }
  27.             if(!(mysql_select_db($this->db,$this->link)))
  28.                 die( "<p class='error'>No puede utilizar la base de datos $this->db.</p>");
  29.         }
  30.    }
  31.    // cierra la conexion si es que esta conectada
  32.    function cerrar_conexion(){
  33.         if($this->estaConectada())
  34.         // se asegura que la conexion no se rompio bruscamente (fuera del close)
  35.             mysql_close($this->link);
  36.         $this->link = NULL;
  37.    }
  38.    // ejecuta la query cargada en $sql
  39.    // en caso de error carga el codigo y mensaje de error en idError y error respectivamente.
  40.    function query($sql){
  41.         $result = mysql_query($sql,$this->link);
  42.         if(!$result){
  43.             //echo $sql;       
  44.             $this->idError = mysql_errno($this->link);
  45.             $this->error = mysql_error($this->link);
  46.         }
  47.         return $result; // FALSE si la query falla
  48.    }
  49.    // retona la siguiente fila en un array asociativo
  50.    function fetch_array($result){
  51.         $fila = mysql_fetch_array($result);
  52.         return $fila;
  53.    }
  54.    // retorna el numero de filas del result_set ($result)
  55.    function num_rows($result){
  56.         $num_rows = mysql_num_rows($result);
  57.         return $num_rows;
  58.    }
  59.    // retorna un booleano indicando si la conexion esta activa
  60.    function estaConectada(){
  61.         if( $this->link != NULL && mysql_ping($this->link) )
  62.             return true;
  63.         else
  64.             return false;
  65.    }
  66. }

config.inc.php

Código PHP:
Ver original
  1. define("HOST","http://localhost");
  2. define("HOST1","http://localhost");
  3. // Postgres 1 o Mysql
  4. define("DB_SERVER1","localhost");
  5. define("DB_PORT1","3306");
  6. define("DB_USER1","root");
  7. define("DB_PWD1","123456");
  8. define("DB_1","teirsac");

funciones.php

Código PHP:
Ver original
  1. function agregarservicios($idtiposervicio,$descripcion){
  2.     $sql_servicios  = "insert into teirsac_servicios(idtiposervicio,descripcion)";
  3.     $sql_servicios .= "values('$idtiposervicio','$descripcion')";
  4.    
  5.     $cn->query($sql_servicios) or die(mysql_error());
  6.    
  7.     header("Location:index.php");
  8.    
  9. }
  10.  
  11. function editarservicios($codigo,$idtiposervicio,$descripcion){
  12.     $sql_edit  = "update teirsac_servicios set idtiposervicio = '$idtiposervicio', descripcion = '$descripcion' ";
  13.     $sql_edit .= "where idservicio = '$codigo'";
  14.    
  15.     $cn->query($sql_edit) or die(mysql_error());
  16.    
  17.     header("Location:index.php");
  18.    
  19. }
  20.  
  21. function borrarservicios($cod){
  22.     $sql_del = "delete from teirsac_servicios where idservicio = '$cod'";
  23.     $cn->query($sql_del) or die(mysql_error());
  24.    
  25.     header("Location:index.php");
  26.    
  27. }

procesar.php

Código PHP:
Ver original
  1. include("../../includes/Conexion.class.php");
  2. include("../../includes/config.inc.php");
  3. include("funciones.php");
  4.  
  5. $cn= new Conexion();
  6. $cn->conectarse();
  7.  
  8. $tipos_servicios    = $_POST['tipos_servicios'];
  9. $descripcion        = $_POST['descripcion'];
  10.  
  11. if(!isset($_POST['editar'])){
  12.     agregarservicios($tipos_servicios,$descripcion);
  13. }
  14.  
  15. if(isset($_POST['editar'])){
  16.     if($_POST['editar']=='1'){                                             
  17.         editarservicios($_POST['codigo'],$tipos_servicios,$descripcion);
  18.     }
  19.    
  20. }

a que se debe ese error ?