Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Porfavor!!! una ayuda con NUSOAP en php con mysq l!!!

nemesis88

Bovino de alcurnia
Desde
1 Feb 2009
Mensajes
2.052
Hola a todos, tengo una dificultad con este problema,
en la cual tengo que crear un servicio web con nusoap y su cliente para que al ingresar un codigo de producto me retorne su precio almacenado en una BD.

Hasta ahora esto es lo que estoy haciendo :

Base de datos

Código:
create database nusoap;
use nusoap;

create table producto(
idProducto int primary key,
titulo varchar(30),
descripcion varchar(30),
precio varchar(4)
);


insert into producto values(1,'Leche Gloria','Muy buena para la salud','15');
insert into producto values(2,'Leche Gloria','Muy buena para la salud','16');
insert into producto values(3,'Leche Gloria','Muy buena para la salud','17');
insert into producto values(4,'Leche Gloria','Muy buena para la salud','18');
insert into producto values(5,'Leche Gloria','Muy buena para la salud','22');
insert into producto values(6,'Leche Gloria','Muy buena para la salud','36');
insert into producto values(7,'Leche Gloria','Muy buena para la salud','37');



Servidor : server.php

Código:
<?php

include('lib/nusoap.php');
$server = new soap_server;
$server->configureWSDL('obtenerProducto', 'urn:obtenerProducto');          
$server->wsdl->addComplexType('producto','complexType','struct','all','',
               array(
                        'idProducto' => array('name' => 'idProducto', 'type' => 'xsd:int'),
                        'titulo' => array('name' => 'titulo', 'type' => 'xsd:string'),
                        'descripcion' => array('name' => 'descripcion', 'type' => 'xsd:int' ),
                        'precio' => array('name' => 'precio', 'type' => 'xsd:int' ),
                        ));
                        
$server->register('obtenerProducto',
                  array('idProducto' => 'xsd:int'),
                  array('return'=>'tns:producto'),
                  'urn:obtenerProducto',
                  'urn:obtenerProducto#producto',
                  'rpc',
                  'encoded',
                  'Este método devuelve un producto.');                            

function obtenerProducto($id){
    $con = new mysqli('localhost','root','','nusoap');
    $sql = " SELECT idProducto, titulo, descripcion, precio FROM producto where idProducto = $id ";
    $stmt = $con->prepare($sql);
    $stmt->execute();
    $stmt->bind_result($col1,$col2,$col3,$col4);
    $stmt->fetch();
    $row[0] = $col1;
    $row[1] = $col2;
    $row[2] = $col3;
    $row[3] = $col4;
    return array('idProducto' => $row[0],'titulo' => $row[1],'descripcion' => $row[2],'precio' => $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 : cliente.php

Código:
<?php

require('lib/nusoap.php');
  
$l_oClient = new soapclient('http://localhost/Practica/server.php?wsdl', 'wsdl');
$l_oProxy  = $l_oClient->getProxy();
        
$parametro = $_GET['idProducto'];
$l_stResult = $l_oProxy->obtenerProducto($parametro);
      

   print '<h1>Producto :</h1>'
           . '<br>Id Producto: '  . $l_stResult['idProducto']
           . '<br>Titulo : '   . $l_stResult['titulo']
           . '<br>Descripcion ' . $l_stResult['descripcion']
           . '<br>Precio ' . $l_stResult['precio'];

?>


Me sale este error

Código:
Warning: SoapClient::SoapClient() expects parameter 2 to be array, string given in C:\wamp\www\Practica\cliente.php on line 5

Fatal error: Uncaught SoapFault exception: [Client] SoapClient::SoapClient() [<a href='soapclient.soapclient'>soapclient.soapclient</a>]: Invalid parameters in C:\wamp\www\Practica\cliente.php:5 Stack trace: #0 C:\wamp\www\Practica\cliente.php(5): SoapClient->SoapClient('http://localhos...', 'wsdl') #1 {main} thrown in C:\wamp\www\Practica\cliente.php on line 5


Nota : porfavor ayudenme, no sé en que estoy mal.Salu2
 
Volver
Arriba