Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/03/2008, 15:03
joseverdugo
 
Fecha de Ingreso: febrero-2008
Mensajes: 8
Antigüedad: 16 años, 9 meses
Puntos: 0
Busqueda Re: Refrescar lista desplegable de pagina padre desde pagina hija en ie6

mas...


db.class.php
Código PHP:
<?php
require ("inc.config.php");

class 
db {
    
/* Variable de conexion*/
    
var $servidor;
    var 
$puerto;
    var 
$nombreBD;
    var 
$nombreDeUsuario;
    var 
$contrasena;

    
/* identificador de conexion y consulta */
    
var $enlace;
    var 
$resultado;
    var 
$consulta_id;
    var 
$sql;

    
/* texto error */
    
var $Error "";  //texto de error dado por postgres
    
var $Errno 0;   //numero de error
    
var $Errtex ""//texto de error a mostrar

    
function db(){
        
/* Declaracion de Variable de datos de conexion */
        
global $cfg;
        
/* asignacion de variables globales*/
        
$this->servidor $cfg->servidor;
        
$this->puerto $cfg->puerto;
        
$this->nombreBD $cfg->nombreBD;
        
$this->nombreDeUsuario $cfg->nombreDeUsuario;
        
$this->contrasena $cfg->contrasena;
        
        
/* Al llamar al constructor se estable crea inmediatamente la coneccion */
        /* si la coneccion se pierde se puede volver a conectar con obj->connect() */        

        
$this->connect();
    }
    
/* metodo conexion*/
    
function connect(){
        global 
$cfg;
        
/*creacion de string de conexion*/
        
$sConn "host=$this->servidor port=$this->puerto dbname=$this->nombreBD user=$this->nombreDeUsuario password=$this->contrasena";
        
/*conectar*/
        
$this->enlace pg_connect($sConn);

        
/* si la coneccion fallo, se intenta nuevamente en x segundo mas*/
        
if($cfg->reconect && !$this->enlace){
            
sleep($cfg->se_reconect);
            
$this->enlace pg_connect($sConn);
        }
        
/* si falla otra vez, se controla el error*/
        
if (!$this->enlace) {
            
$this->errControl("Ha fallado la conexión");
            return 
false;
        }
    }
    
/*metodo de ejecucion de consultas*/
    
function query($sql){
        
$this->sql $sql;

        if (
$this->sql == "") {
            
$this->errControl("No ha especificado una consulta SQL");
            return 
false;
        }

        
$this->consulta_id pg_query($this->enlace,$this->sql);

        if (!
$this->consulta_id) {
            
$this->errControl("Consulta Invalida");
            return 
false;
        }


        
        return 
true;
    }
    
/*recuperar registros*/
    
function fetch(){
        if(
$this->resultado pg_fetch_array($this->consulta_id)){
            return 
$this->resultado;

        }else{
            
// entra en este caso cuando se acaban los registros
            // no por error, es para que termine el while.
            
return false;
        }
    }

    
/* fetch que retorna todo en una matriz asociativa y numerica*/
    /* ejemplo de uso
    $tabla = $objDB->fetchm();    
    $n = count($tablas);
    for($i = 0; $i < $n; $i++){
            echo $tabla[$i][0]."\r\n";
    }    
    */
    
function fetchm(){
        
$i false;

        while( 
$fila $this->fetch() ){
            
$res[]= $fila;
            
$i true;
        }
        if(
$i)
        return 
$res;
        else
        
false;
    }

    
/* numero de campos*/
    
function numcampos() {
        return 
pg_num_fields($this->consulta_id);
    }

    
/* Devuelve el número de registros de una consulta */
    
function num(){
        return 
pg_num_rows($this->consulta_id);
    }

    
/* Devuelve el nombre de un campo de una consulta */
    
function nombrecampo($numcampo) {
        return 
pg_field_name($this->consulta_id$numcampo);
    }
    
/* Devuelve el tipo de un campo de una consulta */
    
function typecampo($numcampo) {
        return 
pg_field_type($this->consulta_id$numcampo);
    }
    
/* Muestra los datos en html de una consulta */
    
function verconsulta() {

        echo 
"<table width=\"895\" border=\"2\" align=\"center\" cellpadding=\"0\" cellspacing=\"2\" bordercolor=\"#70D361\">\n";

        
// mostramos los nombres de los campos
        
for ($i 0$i $this->numcampos(); $i++){
            echo 
"<td><b>".$this->nombrecampo($i)."</b></td>\n";
        }

        echo 
"</tr>\n";

        
// mostrarmos los registros
        
while ($row $this->fetch()) {

            echo 
"<tr> \n";

            for (
$i 0$i $this->numcampos(); $i++){
                if(
$row[$i] == null and $i == ){
                    echo 
"<td>Total</td>\n";
                }else{
                    if(
$row[$i] == null){
                        echo 
"<td align=\"center\">-</td>\n";
                    }else{
                        echo 
"<td>".$row[$i]."</td>\n";
                    }
                }

            }

            echo 
"</tr>\n";

        }
    }



    
/* Metodo para almacenar errores*/
    
function saveError(){
        global 
$cfg;
        
/*
        // Creacion de mensaje a almacenar
        $errorT = "-ERROR : ".$this->Errtex."\r\n" ;
        $fecha = "\t[".date("d")."-".date("n")."-".date("y")."]"."[".date("H").":".date("i").":".date("s")."]\r\n";
        $pagina = "\tDesde Pagina: ".$_SERVER['PHP_SELF']."\r\n";
        $ip = "\tIP: ".$_SERVER['REMOTE_ADDR']."\r\n";

        $error = "\t\"".$this->Error."\"\r\n";
        $sql =  "\t\"".$this->sql."\"\r\n";

        $save = $errorT.$fecha.$pagina.$ip.$error.$sql;

        
        // guardando en archivo
        $archivo = "../log/error.log";
        $ddf = fopen($archivo,'a+');
        fwrite($ddf, $save);
        fclose($ddf);
        */

    
}

    
/* control de errores */
    
function errControl($msg){

        
$this->Errno "";
        
$this->Error pg_last_error($this->enlace);
        
$this->Errtex $msg;
        
$this->saveError();

    }

    
    
    function 
free(){
        
pg_free_result($this->consulta_id);
        return 
true;

    }
    function 
close(){
        
pg_close($this->enlace);
        return 
true;
    }

    
}
// Fin Clase
?>

inc.config.php
Código PHP:
<?php

$cfg
->servidor "localhost"
$cfg->nombreBD "nombredb";
$cfg->puerto 5432
$cfg->nombreDeUsuario "user";
$cfg->contrasena "pass";

$cfg->se_reconect 4;
$cfg->reconect 1;

?>
.....