Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2012, 10:36
TheM4ster
 
Fecha de Ingreso: julio-2007
Mensajes: 109
Antigüedad: 16 años, 9 meses
Puntos: 1
WebService Nusoap php mysql

Hola gente,
Estoy empezando a implementar webservices con php+mysql,
me he bajado varios ejemplos, mayormente los hay basicos,
y he aprendido a hacerlos funcionar con ayuda de algunos manuales,
ahora estoy modificandolos para que trabaje con datos de mysql,
pero tengo este problema, al consumir el servicio del server, no me muestra los datos de resultados, haber si alguien me da una mano, les dejo el codigo,

Tabla:

--
-- Tabellenstruktur für Tabelle `tab_producto`
--

CREATE TABLE IF NOT EXISTS `tab_producto` (
`ID_PRODUCTO` int(6) NOT NULL AUTO_INCREMENT,
`NOM_PRODUCTO` varchar(100) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`DES_PRODUCTO` text CHARACTER SET latin1 COLLATE latin1_general_ci,
`STOCK` int(11) DEFAULT NULL,
PRIMARY KEY (`ID_PRODUCTO`)
);

--
-- Daten für Tabelle `tab_producto`
--

INSERT INTO `tab_producto` (`ID_PRODUCTO`, `NOM_PRODUCTO`, `DES_PRODUCTO`, `STOCK`) VALUES
(76, 'CLORETS', '', 13),
(77, 'TRIDENT ', '', 15),
(78, 'CHICLE ADAMS - GRANDE', '', 25);


server.php

Código PHP:
<?php
include('../lib/nusoap.php');
$server = new soap_server;
$server->configureWSDL('obtenerProductos''urn:obtenerProductos');          
$server->wsdl->addComplexType('RenglonProducto','complexType','struct','all','',
               array(
                        
'Id_Producto'         => array('name' => 'Id_Producto''type' => 'xsd:string'),
                        
'Codigo'             => array('name' => 'Codigo''type' => 'xsd:string'),
                        
'Descripcion'         => array('name' => 'Descripcion''type' => 'xsd:string' ),
                        
'PrecioBaseVenta'     => array('name' => 'PrecioBaseVenta''type' => 'xsd:string' ),
                        ));
$server->wsdl->addComplexType('ArrayOfRenglonProducto','complexType','array','','SOAP-ENC:Array',
array(),
array(        
            array(
'ref' => 'SOAP-ENC:arrayType',
                  
'wsdl:arrayType' => 'tns:RenglonProducto[]'                              
                  
)                                       
    ),
'tns:RenglonProducto');
$server->xml_encoding "utf-8";
$server->soap_defencoding "utf-8";
$server->register('obtenerProductos',
                  array(
'Id_Producto' => 'xsd:int'),
                  array(
'return'=>'tns:ArrayOfRenglonProducto'),
                  
'urn:Servicio',
                  
'urn:Servicio#obtenerProductos',
                  
'rpc',
                  
'literal',
                  
'Este método devuelve la lista de  productos.');                            

function 
obtenerProductos($id=false){
$i=0;         
     
$con = new mysqli("localhost","root","","inversio_tienda");
    
$sql " SELECT ID_PRODUCTO, NOM_PRODUCTO, DES_PRODUCTO, STOCK FROM tab_producto ";
    
$stmt $con->prepare($sql);
    
$stmt->execute();
    
$stmt->bind_result($col1,$col2,$col3,$col4);
    
// $stmt->fetch();

    
while ($stmt->fetch()) {
       
// printf ("%s (%s)\n", $row[0], $row[1]);
        
$row[0] = 'A';
        
$row[1] = 'B';
        
$row[2] = 'C';
        
$row[3] = 'D';
        
$rows[$i]=$row;
             
// echo $rows[0];
        
$i=$i+1;
    }

    return 
$rows//array('Id_Producto' => $row[0],'Codigo' => $row[1],'Descripcion' => $row[2],'PrecioBaseVenta' => $row[3]);

}
// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA '';
$server->service($HTTP_RAW_POST_DATA);    
?>
cliente.php

Código PHP:
<?php    
// incluyo nusoap 
require('../lib/nusoap.php');
  
$l_oClient = new nusoap_client('http://localhost/ws/mysql3/server.php?wsdl''wsdl');
$l_oProxy  $l_oClient->getProxy();
        
// llama al webmethod (obtenerProducto)
$parametro = isset($_GET['idProducto'])?$_GET['idProducto']:'';
$l_stResult $l_oProxy->obtenerProductos($parametro);
           
print(
'<pre>');
print_r($l_stResult); 
print(
'</pre>');
// ?>

el resultado en pantalla es este,

Array
(
[item] => Array
(
[0] => Array
(
[Id_Producto] =>
[Codigo] =>
[Descripcion] =>
[PrecioBaseVenta] =>
)

[1] => Array
(
[Id_Producto] =>
[Codigo] =>
[Descripcion] =>
[PrecioBaseVenta] =>
)

[2] => Array
(
[Id_Producto] =>
[Codigo] =>
[Descripcion] =>
[PrecioBaseVenta] =>
)
)
)

Gracias de antemano,

Saludos,