Foros del Web » Programando para Internet » PHP »

Problemas con Nusoap y Base de datos

Estas en el tema de Problemas con Nusoap y Base de datos en el foro de PHP en Foros del Web. Buenas a todos, ke tal, necesito ayuda con nusoap, estoy intentando crear un servidor que me devuelva los datos de una consulta a una base ...
  #1 (permalink)  
Antiguo 10/11/2007, 14:31
Avatar de Helenha  
Fecha de Ingreso: noviembre-2007
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Problemas con Nusoap y Base de datos

Buenas a todos, ke tal, necesito ayuda con nusoap, estoy intentando crear un servidor que me devuelva los datos de una consulta a una base de datos, el servidor lo que haría seria conectarse a la base de datos, obtener los datos de una consulta y devolverme esos datos, el caso es ke no me va el servidor, este no me da ningún error , no se cual es el fallo. Lo ke realmente quiero hacer es un servidor que se conecte con varias bases de datos iguales de varias aplicaciones y me devuelva el resultado, pero si no me funciona el ejemplo no puedo seguir.

Bueno Gracias a todos aquellos que me kieran ayudar, aqui os dejo el codigo:

servidor:
Código PHP:
<?php
    
/*----------------------------CREACIÓN DEL SERVICIO WEB--------------------------------------------------*/

    // Incluimos las clases de SOAP:
    
require("lib/nusoap.php");
    
// Creamos el objeto del servidor:
    
$servidor = new soap_server();
    
    
    
    
$namespace="http://localhost/services";
    
    
// Generación del WSDL
    
$servidor->debug_flag=false;
    
$servidor->configureWSDL('ApplicationServices',$namespace);
    
$servidor->wsdl->schemaTargetNamespace $namespace;

    
// Agregamos un tipo de dato complejo
    
$servidor->wsdl->addComplexType(
        
"datosArticulos",
        
"complexType",
        
"struct",
        
"all",
        
"",
        array(
            
"id" => array("name"=>"id""type"=>"xsd:int"),
            
"descripcion" => array("name"=>"descripcion""type"=>"xsd:string"),
            
"precio" => array("name"=>"precio""type"=>"xsd:double"),
            
"seccion" => array("name"=>"seccion""type"=>"xsd:int"),
            
"tipoarticulo" => array("name"=>"tipoarticulo""type"=>"xsd:int"),
            
"seccion" => array("name"=>"seccion""type"=>"xsd:int"))
    );
    
//Lista de Articulos
    
$servidor->wsdl->addComplexType(
        
"ListaArticulos",
        
"complexType",
        
"array",
        
"",
        
"SOAP-ENC:Array",
        array(),
            array(
                array(
"ref" => "SOAP-ENC:arrayType",
                      
"wsdl:arrayType" => "tns:datosArticulos[]")),
                
"tns:datosArticulos");

    
// Registramos la función que queremos exponer como servicio web
    
$servidor->register("ObtenerArticulos", array("seccion" => "xsd:int","tarticulo" => "xsd:int","tienda" => "xsd:int","inicial" => "xsd:int","cantidad" => "xsd:int","ordenar" => "xsd:string"), array("return"=>"tns:ListaArticulos"), $namespace);
    
$servidor->register("NumArticulosTotales", array("seccion" => "xsd:int","tarticulo" => "xsd:int","tienda" => "xsd:int"), array("return"=>"xsd:int"), $namespace);
    
    function 
ObtenerArticulos($seccion$tarticulo$tienda$inicial$cantidad$ordenar){
        if (
is_int($seccion) && is_int($tarticulo) && is_int($tienda)){   
            
$DBlink = @mysql_connect("localhost""root""");
            if(
$tienda==-1){
                 
$sql="SELECT a.articuloID as id, a.descripcion as descripcion, a.precio as precio,
                   s.descripcion as seccion, t.descripcion as  tipoarticulo
                   FROM articulo a, seccion s, tipoarticulo t
                   WHERE a.tipoArticuloID = t.tipoArticuloID
                   AND s.seccionID = a.seccionID
                   AND a.seccionID ="
$seccion."
                   AND a.tipoArticuloID = "
.$tarticulo." ORDER BY precio ".$ordenar." LIMIT ".$inicial.",".$cantidad;
            }else{
                
$sql="SELECT a.articuloID as id, a.descripcion as descripcion, a.precio as precio,
                    s.descripcion as seccion, t.descripcion as  tipoarticulo
                    FROM articulo a, seccion s, tipoarticulo t
                    WHERE a.tipoArticuloID = t.tipoArticuloID
                    AND s.seccionID = a.seccionID
                    AND a.seccionID ="
.$seccion."
                    AND a.tipoArticuloID ="
.$tarticulo."
                    AND a.tiendaID = "
.$tienda." ORDER BY precio ".$ordenar." LIMIT ".$inicial.",".$cantidad
            }
            
$DBresult = @mysql_db_query('proyecto_s',$sql);
          
            
/*// comprobación simple de error 
            if (!$DBresult) {
                return new soap_fault('Server', '', 'Error Interno del Servidor.');
            }*/
      
            
mysql_close($DBlink);
          
            
// retornamos los datos
            
return mysql_fetch_array($DBresultMYSQL_ASSOC);  
        } 
        
// aceptamos solo enterpos
        
else {
          return new 
soap_fault('Client''''Los parametro a pasar solo deben ser enteros.');
        }  
     }
      
     function 
NumArticulosTotales($seccion$tarticulo$tienda){
        if (
is_int($seccion) && is_int($tarticulo) && is_int($tienda)){   
            
$DBlink = @mysql_connect("localhost""root""");
            if(
$tienda==-1){
                
$sql="SELECT a.articuloID as id, a.descripcion as descripcion, a.precio as precio,
                   s.descripcion as seccion, t.descripcion as  tipoarticulo
                   FROM articulo a, seccion s, tipoarticulo t
                   WHERE a.tipoArticuloID = t.tipoArticuloID
                   AND s.seccionID = a.seccionID
                   AND a.seccionID ="
$seccion."
                   AND a.tipoArticuloID = "
.$tarticulo." ORDER BY precio";
            }else{
                
$sql="SELECT a.articuloID as id, a.descripcion as descripcion, a.precio as precio,
                    s.descripcion as seccion, t.descripcion as  tipoarticulo
                    FROM articulo a, seccion s, tipoarticulo t
                    WHERE a.tipoArticuloID = t.tipoArticuloID
                    AND s.seccionID = a.seccionID
                    AND a.seccionID ="
.$seccion."
                    AND a.tipoArticuloID ="
.$tarticulo."
                    AND a.tiendaID = "
.$tienda." ORDER BY precio";   
            }
            
$DBresult = @mysql_db_query('proyecto_s',$sql);
          
            
/*// comprobación simple de error 
            if (!$DBresult) {
                return new soap_fault('Server', '', 'Error Interno del Servidor.');
            }*/
      
            
$num mysql_num_rows($DBresult);
            
mysql_close($DBlink);
          
            
// retornamos los datos
            
return $num;  
        } 
        
// aceptamos solo enterpos
        
else {
          return new 
soap_fault('Client''''Los parametro a pasar solo deben ser enteros.');
        }  
      }

    
// Enviar el resultado como una respuesta SOAP por HTTP
    
if (isset($HTTP_RAW_POST_DATA)) {
       
$input $HTTP_RAW_POST_DATA;
    }
    else {
       
$input implode("\r\n"file('php://input'));
    }

    
$servidor->service($input);
    exit();
?>
Gracias a todos de nuevo.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 03:07.