I resolved that problem...

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • laastos

    #1

    I resolved that problem...

    I created two classes Conexion.php and Consulta.php, I show you the
    code:

    /*
    Clase Conexion:
    Clase encargada de conectarse directamente con la base de datos de
    MySQL.
    */
    class Conexion {
    var $vinculo;
    var $resultado;
    var $sentenciaSQL;

    /*
    Función iniciarConexion ():
    Función para iniciar la conexión con la base de datos.
    Parámetros:
    Ninguno.
    Retorno:
    TRUE si la conexión se logra correctamente.
    FALSE si la conexion no se logra correctamente.
    */
    function iniciarConexion ()
    {
    $this->vinculo = mysql_connect(S ISTEMA_HOST.":" .SISTEMA_PORT,
    SISTEMA_USERNAM E, SISTEMA_PASSWOR D);
    if ($this->vinculo == false) {
    return FALSE;
    exit();
    }
    if (!mysql_select_ db(SISTEMA_DATA BASE, $this->vinculo)) {
    return FALSE;
    exit();
    }
    return TRUE;
    }

    /*
    Función cerrarConexión( ):
    Función para cerrar la conexión con la base de datos.
    Parámetros:
    Ninguno.
    Retorno:
    TRUE si la desconexion se logra correctamente.
    FALSE si la desconexión no se logra correctmente.
    */
    function cerrarConexion( )
    {
    if (!mysql_close($ this->vinculo)) {
    return FALSE;
    exit();
    }
    return TRUE;
    }

    /*
    Función consultaInterna SQL():
    Función para hacer una consulta a la base de datos.
    Parámetros:
    Cadena de caracteres con la consulta en SQL.
    Retorno:
    TRUE si la consulta se logra correctamente.
    FALSE si la consulta se logra correctamente.
    */
    function consultaInterna SQL($sql)
    {
    $this->sentenciaSQL = $sql;
    $this->resultado = mysql_query($sq l, $this->vinculo);
    if (!$this->resultado) {
    return FALSE;
    exit();
    }
    return TRUE;
    }

    /*
    Función obtenerDatos():
    Función para obtener los datos de la consulta SQL realizada.
    Parámetros:
    Tipo de asociación de los datos de la consulta: Asociativo, Numérico
    o Ambos.
    Retorno:
    FALSE si la obtencion no resulta satisfactoria.
    Array con la información de la consulta.
    */
    function obtenerDatos($a rrayType = SISTEMA_ASSOC)
    {
    if (!$this->resultado) {
    return FALSE;
    exit();
    }

    switch ($arrayType) {
    case SISTEMA_ASSOC:
    $mysqlArrayType = MYSQL_ASSOC;
    break;
    case SISTEMA_NUM:
    $mysqlArrayType = MYSQL_NUM;
    break;
    case SISTEMA_BOTH:
    $mysqlArrayType = MYSQL_BOTH;
    break;
    default:
    $mysqlArrayType = MYSQL_ASSOC;
    }

    $temporal = array();
    while ($dato = mysql_fetch_arr ay($this->resultado, $mysqlArrayType ))
    array_push($tem poral, $dato);

    $datos = array();
    while (sizeof($tempor al)) array_push($dat os, array_pop($temp oral));

    return $datos;

    }

    /*
    Función numeroTuplasAfe ctadas():
    Función para saber el número de tuplas afectadas por una sentencia
    INSERT, UPDATE ó DELETE.
    Parámetros:
    Ninguno.
    Retorno:
    Número de tuplas afectadas.
    */
    function numeroTuplasAfe ctadas()
    {
    return mysql_affected_ rows($this->vinculo);
    }

    /*
    Función numeroTuplasRes ultado():
    Función para saber el número de tuplas de un resultado SQL.
    Parámetros:
    Ninguno.
    Retorno:
    Número de tuplas del resultado.
    */
    function numeroTuplasRes ultado()
    {
    if (stristr($this->sentenciaSQL , "select") OR stristr($this-
    >sentenciaSQL , "SELECT"))
    return mysql_num_rows( $this->resultado);
    else return 0;
    }
    }

    And the second class...

    require_once("C onexion.php");

    class Consulta {
    var $conexion;
    var $cadenaSQL = "";
    var $consulta;

    function conectar() {
    $this->conexion = new Conexion();
    $this->conexion->iniciarConexio n();
    }

    function desconectar() {
    $this->conexion->cerrarConexion ();
    unset($this->conexion);
    }

    function consultaExterna SQL($sql, $arrayType = SISTEMA_ASSOC) {
    $this->consulta = NULL;
    $this->cadenaSQL = $sql;
    $this->conectar();
    $this->conexion->consultaIntern aSQL($sql);
    if ($this->conexion->numeroTuplasRe sultado() 0) $this->consulta =
    $this->obtenerDatos($ arrayType);
    $this->desconectar( );
    return $this->obtenerResulta do();
    }

    function obtenerDatos($a rrayType) {
    return $this->conexion->obtenerDatos($ arrayType);
    }

    function obtenerResultad o() {
    return $this->consulta;
    }

    function obtenerSQL() {
    return $this->cadenaSQL;
    }

    function obtenerSiguient eIdentificadorT abla($nombreTab la) {
    $consulta = $this->consultaExtern aSQL("SELECT max(id) AS maximo FROM
    ".$nombreTabla. "");
    $consulta = array_pop($cons ulta);
    if (!empty($consul ta['maximo'])) return $consulta['maximo'] + 1;
    else return 1;
    }

    }
  • Kailash Nadh

    #2
    Re: I resolved that problem...

    On Nov 27, 9:28 pm, laastos <laas...@gmail. comwrote:
    I created two classes Conexion.php and Consulta.php, I show you the
    code:
    >
    /*
    Clase Conexion:
    Clase encargada de conectarse directamente con la base de datos de
    MySQL.
    */
    class Conexion {
    var $vinculo;
    var $resultado;
    var $sentenciaSQL;
    >
    /*
    Función iniciarConexion ():
    Función para iniciar la conexión con la base de datos.
    Parámetros:
    Ninguno.
    Retorno:
    TRUE si la conexión se logra correctamente.
    FALSE si la conexion no se logra correctamente.
    */
    function iniciarConexion ()
    {
    $this->vinculo = mysql_connect(S ISTEMA_HOST.":" .SISTEMA_PORT,
    SISTEMA_USERNAM E, SISTEMA_PASSWOR D);
    if ($this->vinculo == false) {
    return FALSE;
    exit();
    }
    if (!mysql_select_ db(SISTEMA_DATA BASE, $this->vinculo)) {
    return FALSE;
    exit();
    }
    return TRUE;
    }
    >
    /*
    Función cerrarConexión( ):
    Función para cerrar la conexión con la base de datos.
    Parámetros:
    Ninguno.
    Retorno:
    TRUE si la desconexion se logra correctamente.
    FALSE si la desconexión no se logra correctmente.
    */
    function cerrarConexion( )
    {
    if (!mysql_close($ this->vinculo)) {
    return FALSE;
    exit();
    }
    return TRUE;
    }
    >
    /*
    Función consultaInterna SQL():
    Función para hacer una consulta a la base de datos.
    Parámetros:
    Cadena de caracteres con la consulta en SQL.
    Retorno:
    TRUE si la consulta se logra correctamente.
    FALSE si la consulta se logra correctamente.
    */
    function consultaInterna SQL($sql)
    {
    $this->sentenciaSQL = $sql;
    $this->resultado = mysql_query($sq l, $this->vinculo);
    if (!$this->resultado) {
    return FALSE;
    exit();
    }
    return TRUE;
    }
    >
    /*
    Función obtenerDatos():
    Función para obtener los datos de la consulta SQL realizada.
    Parámetros:
    Tipo de asociación de los datos de la consulta: Asociativo, Numérico
    o Ambos.
    Retorno:
    FALSE si la obtencion no resulta satisfactoria.
    Array con la información de la consulta.
    */
    function obtenerDatos($a rrayType = SISTEMA_ASSOC)
    {
    if (!$this->resultado) {
    return FALSE;
    exit();
    }
    >
    switch ($arrayType) {
    case SISTEMA_ASSOC:
    $mysqlArrayType = MYSQL_ASSOC;
    break;
    case SISTEMA_NUM:
    $mysqlArrayType = MYSQL_NUM;
    break;
    case SISTEMA_BOTH:
    $mysqlArrayType = MYSQL_BOTH;
    break;
    default:
    $mysqlArrayType = MYSQL_ASSOC;
    }
    >
    $temporal = array();
    while ($dato = mysql_fetch_arr ay($this->resultado, $mysqlArrayType ))
    array_push($tem poral, $dato);
    >
    $datos = array();
    while (sizeof($tempor al)) array_push($dat os, array_pop($temp oral));
    >
    return $datos;
    >
    }
    >
    /*
    Función numeroTuplasAfe ctadas():
    Función para saber el número de tuplas afectadas por una sentencia
    INSERT, UPDATE ó DELETE.
    Parámetros:
    Ninguno.
    Retorno:
    Número de tuplas afectadas.
    */
    function numeroTuplasAfe ctadas()
    {
    return mysql_affected_ rows($this->vinculo);
    }
    >
    /*
    Función numeroTuplasRes ultado():
    Función para saber el número de tuplas de un resultado SQL.
    Parámetros:
    Ninguno.
    Retorno:
    Número de tuplas del resultado.
    */
    function numeroTuplasRes ultado()
    {
    if (stristr($this->sentenciaSQL , "select") OR stristr($this->sentenciaSQL , "SELECT"))
    >
    return mysql_num_rows( $this->resultado);
    else return 0;
    }
    >
    }
    >
    And the second class...
    >
    require_once("C onexion.php");
    >
    class Consulta {
    var $conexion;
    var $cadenaSQL = "";
    var $consulta;
    >
    function conectar() {
    $this->conexion = new Conexion();
    $this->conexion->iniciarConexio n();
    }
    >
    function desconectar() {
    $this->conexion->cerrarConexion ();
    unset($this->conexion);
    }
    >
    function consultaExterna SQL($sql, $arrayType = SISTEMA_ASSOC) {
    $this->consulta = NULL;
    $this->cadenaSQL = $sql;
    $this->conectar();
    $this->conexion->consultaIntern aSQL($sql);
    if ($this->conexion->numeroTuplasRe sultado() 0) $this->consulta =
    $this->obtenerDatos($ arrayType);
    $this->desconectar( );
    return $this->obtenerResulta do();
    }
    >
    function obtenerDatos($a rrayType) {
    return $this->conexion->obtenerDatos($ arrayType);
    }
    >
    function obtenerResultad o() {
    return $this->consulta;
    }
    >
    function obtenerSQL() {
    return $this->cadenaSQL;
    }
    >
    function obtenerSiguient eIdentificadorT abla($nombreTab la) {
    $consulta = $this->consultaExtern aSQL("SELECT max(id) ASmaximo FROM
    ".$nombreTabla. "");
    $consulta = array_pop($cons ulta);
    if (!empty($consul ta['maximo'])) return $consulta['maximo'] + 1;
    else return 1;
    }
    >
    }
    hm?

    --
    Kailash Nadh | http://kailashnadh.name

    Comment

    Working...