Foros del Web » Programando para Internet » PHP »

insertar datos en db recibidos desde un webservice

Estas en el tema de insertar datos en db recibidos desde un webservice en el foro de PHP en Foros del Web. Hola, He logrado desarrollar el web service y al parecer tambien que me traigan los datos, pero no entiendo como los imprimo o los vacío ...
  #1 (permalink)  
Antiguo 21/11/2014, 11:26
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
insertar datos en db recibidos desde un webservice

Hola,

He logrado desarrollar el web service y al parecer tambien que me traigan los datos, pero no entiendo como los imprimo o los vacío en un array puesto que mi cliente es:

Código PHP:
Ver original
  1. require_once "lib/nusoap.php";
  2.     $cliente = new nusoap_client("http://localhost/webservices/producto.php?wsdl");
  3.      
  4.     $error = $cliente->getError();
  5.     if ($error) {
  6.         echo "<h2>Constructor error</h2><pre>" . $error . "</pre>";
  7.     }
  8.      
  9.     $result = $cliente->call("getProd", array("categoria" => "libros"));
  10.            
  11.     if ($cliente->fault) {
  12.         echo "<h2>Fault</h2><pre>";
  13.         print_r($result);
  14.         echo "</pre>";
  15.     }
  16.     else {
  17.         $error = $cliente->getError();
  18.         if ($error) {
  19.             echo "<h2>Error</h2><pre>" . $error . "</pre>";
  20.         }
  21.         else {
  22.             echo '<h2>Request</h2>';
  23.             echo '<pre>' . htmlspecialchars($cliente->request, ENT_QUOTES) . '</pre>';
  24.             echo '<h2>Response</h2>';
  25.             echo '<pre>' . htmlspecialchars($cliente->response, ENT_QUOTES) . '</pre>';
  26.             // Display the debug messages
  27.             echo '<h2>Debug</h2>';
  28.             echo '<pre>' . htmlspecialchars($cliente->debug_str, ENT_QUOTES) . '</pre>';
  29.         }
  30.     }

y si esta imprimiendo como si el resultado no tuviera problemas:

Código HTML:
Ver original
  1. Response
  2.  
  3. HTTP/1.1 200 OK
  4. Date: Fri, 21 Nov 2014 17:29:43 GMT
  5. Server: Apache/2.4.7 (Ubuntu)
  6. X-Powered-By: PHP/5.5.9-1ubuntu4.5
  7. X-SOAP-Server: NuSOAP/0.9.5 (1.123)
  8. Content-Length: 515
  9. Vary: Accept-Encoding
  10. Connection: close
  11. Content-Type: text/xml; charset=ISO-8859-1
  12.  
  13. <?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:getProdResponse xmlns:ns1="http://tempuri.org"><return xsi:type="xsd:string">Array</return></ns1:getProdResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
este resultado me parece que es el resultado, el caso es que aquí no me muestran los datos que recoge de la base de datos.
  #2 (permalink)  
Antiguo 21/11/2014, 14:45
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: insertar datos en db recibidos desde un webservice

Esta claro que recibo un Array

Código HTML:
Ver original
  1. <return xsi:type="xsd:string">Array</return>
intento abrir este array pero no me sale nada.

tal ves es por que así es cómo recojo los datos:

Código PHP:
Ver original
  1. require_once "lib/nusoap.php";
  2.  
  3.     function getProd($categoria) {
  4.         $link = mssql_connect('host', 'user', 'contrasena');
  5.          
  6.         if (!$link)
  7.             die('Unable to connect!');
  8.          
  9.         if (!mssql_select_db('pro_mujer', $link))
  10.             die('Unable to select database!');
  11.          
  12.         $result = mssql_query("SELECT a,b,c,d, e, SUM( mont ) as 'monto' FROM tabla");
  13.  
  14.         if ($categoria == "libros") {
  15.             $datos = array();
  16.             $c = 0;
  17.  
  18.             $row = mssql_fetch_array($result);
  19.  
  20.             return array('Cod_Regional' => $row[0],'Cod_Ac' => $row[1],'Cod_Centro_Focal' => $row[2],'Cod_Usuario'=>$row[3],'Cod_prestamo'=>$row[4],'prima' => $row[5]);
  21.         } else {
  22.             return "No hay productos de esta categoria";
  23.         }
  24.         mssql_free_result($result);
  25.     }
  26.    
  27.     $server = new soap_server();
  28.  
  29.     $server->configureWSDL("producto", "urn:producto");
  30.  
  31.     //Definimos la estructura de cada registro
  32.     $server->wsdl->addComplexType(
  33.         'producto',
  34.         'complexType',
  35.         'struct',
  36.         'all',
  37.         '',
  38.         array(
  39.             'Cod_Regional' => array('name' => 'Cod_Regional', 'type' => 'xsd:string'),
  40.             'Cod_Ac' => array('name' => 'Cod_Ac', 'type' => 'xsd:string'),
  41.             'Cod_Centro_Focal' => array('name' => 'Cod_Centro_Focal', 'type' => 'xsd:string' ),
  42.             'Cod_Usuario' => array('name' => 'Cod_Usuario', 'type' => 'xsd:string' ),
  43.             'Cod_prestamo' => array('name' => 'Cod_prestamo', 'type' => 'xsd:string' ),
  44.             'prima' => array('name' => 'prima', 'type' => 'xsd:int' ),
  45.         ));    
  46.     $server->register("getProd",
  47.         array("categoria" => "xsd:string"),
  48.         array("return" => "xsd:producto"),
  49.         "urn:producto",
  50.         "urn:producto#getProd",
  51.         "rpc",
  52.         "encoded",
  53.         "Nos da una lista de productos de cada categoría"
  54.         );
  55.     $server->service($HTTP_RAW_POST_DATA);

Etiquetas: html, webservice
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 14:56.