Foros del Web » Programando para Internet » PHP »

recuperar datos de mssql

Estas en el tema de recuperar datos de mssql en el foro de PHP en Foros del Web. Hola tengo un pequeño problema con el siguiente codigo al tratar de recuperar los datos de una simple consulta. el codigo php: Código PHP: [ ...
  #1 (permalink)  
Antiguo 14/07/2008, 08:53
 
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 109
Antigüedad: 19 años, 8 meses
Puntos: 1
recuperar datos de mssql

Hola tengo un pequeño problema con el siguiente codigo al tratar de recuperar los datos de una simple consulta.

el codigo php:

Código PHP:
[PHP]
$myServer "localhost";
$myUser "user";
$myPass "pass";
$myDB "pubs";

// connection to the database
$dbhandle mssql_connect($myServer$myUser$myPass)
    or die(
"No se pudo cnectar al servidor SQL $myServer");

// select a database to work with
$selected mssql_select_db($myDB$dbhandle)
    or die(
"No se puede abrir la base de Datos $myDB");

echo 
"Estas conectado a la Base de Datos  " $myDB " dentro de  " $myServer ".";

$result=mssql_query("select * from authors"); 
while (
$row=mssql_fetch_array($result)) { 
   
$counter++;
   
$c1=$row[0]; 
  
  echo (
"$counter c1: $c1 ><br>"); 


echo 
"TEST FUNCION traer Resultado()";

$rs=traerResultado($result);

var_dump($rs);

function 
traerResultado($rs)

   while (
$row=mssql_fetch_array($rs)) { 
  
    
    
$i++;
 return 
$row;
 
}

}



?> 
[/PHP]



sin usar la funcion traerResultado() todo funciona bien pero cuando quiero usarlo esta lo que me intereza para poder luego armar un metodo dentro de una clase. y no obtengo ningun resultado podrian ayudarme que es lo que estoy haciendo mal por favor.
  #2 (permalink)  
Antiguo 14/07/2008, 10:01
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: recuperar datos de mssql

sugerencia:
Porque no utilizar algo asi
$cons="SELECT * $tabla";
$sql=mysql_query($cons);
$num_reg=mysql_num_rows($sql);
if($num_reg>0)
{
while($row=mssql_fetch_array($sql))
{
//aqui poner tu funcion
}
}
else
{
echo"No hay Registros<br>";
}

Espero te sirva de algo...
  #3 (permalink)  
Antiguo 14/07/2008, 10:43
 
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 109
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: recuperar datos de mssql

Muchas gracias por tu apreciacion lo que hice fue esto en la calse mediante esta funcion:

Código PHP:
public function ExecuteAndGetResult($query){
           
$this->rsQuery=$query;
           
$queryResult $this->Execute($query);
           if(
$queryResult)
           { 
$i=0;
           while (
$row mssql_fetch_array($queryResult)){
               foreach(
$row as $key => $valor) {
                   
$resultArray[$i][$key]=$valor;    
               }
           
$i++;
           }
           return 
$resultArray;
           }
           elseif(
$queryResult==false
           {
               echo 
"Hubo un error al intentar ejecutar el Query: ".$query."<br>Error: ".mssql_get_last_message();
               
           }
       
   } 
  #4 (permalink)  
Antiguo 14/07/2008, 11:04
 
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 109
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: recuperar datos de mssql

Bueno Describo la calse que tengo hasta ahora y bueno puede reusarse y aclaro que todavia aun le falta mucho por hacer. tengo la clase Conexion dentro del script clsConexionMssql.php aqui aun le falta la parte para recibir los datos y armar el query para ejecutar procediminetos almacenados.
Código PHP:
class Conexion 
{    public $servidor;
    public 
$usuario;
    public 
$pass;
    public 
$DB;
    public 
$dbCN;
    public 
$conn;
    public 
$rta;
    public 
$select_db;
    public  
$pagRed;
    public 
$query;
    public 
$result;
    public 
$param=array();
    function 
__construct()
    {
        
$this->servidor="localhost";
        
$this->DB="pubs";
               
$this->usuario="tuusuario";
               
$this->pass="tupassword";
    }
    function 
Conecta()
    {
        
$this->usuario=$usuario;
        
$this->pass=$password;
        
$this->dbCN mssql_connect($this->servidor,$this->usuario,$this->pass);
        if(
$this->dbCN)
        {
            
$this->select_db=self::selectBD($this->DB,$this->dbCN);
            if(
$this->select_db)
            {
                return 
$this->dbCN;
            }
        }
        else 
        {  
            return 
false;
             
        }
                
    }
    function 
selectBD($db,$conn)
    {   
$this->conn=$conn;
        
$this->select_db mssql_select_db($this->DB,$this->conn);
        if(
$this->select_db)
        {
         return  
$this->select_db;
        }
        else 
        {
            return 
false;
        }
        
    }
    
    function 
cerrarBD($conn)
    {
        
/*implementada en al clase hija*/
    
}
    
    
        


Luego la clase AdminDatos dentro del script clsAdminDatos.php que hereda de la clase Conexion:
Código PHP:
include_once("clsConexionMssql.php");
class 
AdminDatos extends Conexion
{   public $rs;
    public 
$num_Rows;
    public 
$regent_condb;
    public 
$rsQuery;
    function 
__construct()
    {         
        
parent::__construct();
    }
function 
conectar()
{   
$this->regent_condb =parent::Conecta();
    return 
$this->regent_condb;
}

function 
Execute($query)
{   
   
$this->rsQuery=mssql_query($query,$this->regent_condb); 
    if( 
$this->rsQuery)
    {   
        return 
$this->rsQuery;
        
//$this->cerrarBD($this->regent_condb);/*ver si estaria bien aqui o cerrariamos desde afuera*/
    
}    
    else 
    {
        return 
false;
        
//$this->cerrarBD($this->regent_condb);
    
}
    
}


public function 
ExecuteAndGetResult($query){
           
$this->rsQuery=$query;
           
$queryResult $this->Execute($query);
           if(
$queryResult)
           { 
$i=0;
           while (
$row mssql_fetch_array($queryResult)){
               foreach(
$row as $key => $valor) {
                   
$resultArray[$i][$key]=$valor;    
               }
           
$i++;
           }
           return 
$resultArray;
           }
           elseif(
$queryResult==false
           {
               echo 
"Hubo un error al intentar ejecutar el Query: ".$query."<br>Error: ".mssql_get_last_message();
               
           }
       
   }


public function 
numRows($query){
       
$this->rsQuery=$query;
       
$this->num_Rowsmssql_num_rows($this->Execute$this->rsQuery));
       return  
$this->num_Rows
   }
function 
cerrarBD($conn) {
            if (
mssql_close($conn)) {
                return 
true;
               
            }
            else {
                return 
false;
            }
        }


Luego la clase Autor que hereda de Admin que guradara sus propios metodos y atributos.

Código PHP:
include_once("clsAdminDatos.php");
class 
Autor extends  AdminDatos
{
    var 
$nombre;
    



y ahora probar la clase Autor testAutor.php:



Código PHP:
include_once("clsAdminDatos.php");
include_once(
"clsAutor.php");
$autor=new Autor();
$cnn=$autor->conectar();
$query="execute pubs..autor_traer";

$result1=$autor->ExecuteAndGetResult($query);




foreach (
$result1 as $key=>$valor)
{
    echo 
$valor[1]."<br>";
}

echo 
$numeroRows=$autor->numRows($query); 

y este es script del store procedure

Código:
CREATE PROCEDURE autor_traer AS 

	SELECT	*
	FROM	authors
GO

Como les dije aun falta mucho por hace pero en eso ya estamos trabajando Bienvenidas las sugerencias.
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 23:54.