Foros del Web » Programando para Internet » PHP »

PHP OO Consulta nuSOAP

Estas en el tema de Consulta nuSOAP en el foro de PHP en Foros del Web. Hola chicos Tengo un webservice con nuSOAP que devuelve el resultado de una consulta sql en forma de un array serializado funciona perfecto cuando la ...
  #1 (permalink)  
Antiguo 19/12/2010, 08:51
 
Fecha de Ingreso: agosto-2009
Mensajes: 52
Antigüedad: 14 años, 8 meses
Puntos: 0
Consulta nuSOAP

Hola chicos

Tengo un webservice con nuSOAP que devuelve el resultado de una consulta sql en forma de un array serializado

funciona perfecto cuando la consulta trae algunos cuantos registros pero si la consulta trae muchos muchos registros , no funciona


el código del server dice así dice así

Código PHP:
<?php
require_once 'lib/nusoap.php';
require_once 
'ConexionBD.php'// como import
require_once 'MySQLHelper.php'// como import
$ns "http://www.misitio.com/soapTest/";
$server = new soap_server();
$server->configureWSDL("webSERVICE",$ns);
$server->wsdl->shemaTargetNamespace $ns;

$server->register("remoteQuery", array("query" => "xsd:string"), array("queryResult" => "xsd:string"),$ns);
//

function remoteQuery($query)  {
    
    
$cn MysqlHelper::ConexionBD ConexionBD::CadenaCN () );
    
$rs MysqlHelper::EjecutarConsulta $cn$query );
    
$rows = array();
    while (
$row mysql_fetch_array($rsMYSQL_NUM)) { $rows[] = $row; }
    
$response serialize($rows);
    return new 
soapval("queryResult""xsd:string"$response);    
    
}

$server->service($HTTP_RAW_POST_DATA);
?>
y su cliente dice asi

Código PHP:
<?php
require_once 'lib/nusoap.php';
$wsdl "http://www.misitio.com/soapTest/soapServer.php?wsdl";
$client = new nusoap_client($wsdl"wsdl");
$param = array("query" => "select *  from mdl_user where email like '[email protected]'");
$response $client->call("remoteQuery"$param);
$response unserialize($response);

foreach(
$response as $row) {
    foreach(
$row as $dato) {
        echo 
"$dato, ";
    }
    echo 
"<br/>";
    
}

?>
supongo que hay un limite de los datos que un webservice puede enviar, pero donde podría cambiarlo y/o configurarlo

gracias besos miles
  #2 (permalink)  
Antiguo 20/12/2010, 14:36
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Consulta nuSOAP

El código parece funcionar.
Respecto de el tamaño de la respuesta, que seguramente envías por POST, has de revisar la configuración en php.ini.
Las claves que tienes que comprobar se explican en la tabla 6, http://www.php-es.com/ini.core.html.
Por último, intenta el fetch sin la constante MYSQL_NUM a ver qué pasa. Espero que te sirva,
  #3 (permalink)  
Antiguo 21/12/2010, 08:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 52
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Consulta nuSOAP

Gracias amigo, aunque el limite post esta en 8mb y mi consulta no trae esa cantidad de datos... veré la forma de subirlo ya que me proveen el hosting por otro lado, me quedo la duda de quitar la constante en el fetch_array.... que ganaría con ello gracias :)
  #4 (permalink)  
Antiguo 21/12/2010, 09:37
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: Consulta nuSOAP

Revisa este link y también este otro.
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #5 (permalink)  
Antiguo 21/12/2010, 21:08
 
Fecha de Ingreso: agosto-2009
Mensajes: 52
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Consulta nuSOAP

Hola, ley pero no entendí mucho :(

quiere decir que los webservices para consultas mysql no convienen?
  #6 (permalink)  
Antiguo 18/01/2011, 13:17
 
Fecha de Ingreso: agosto-2008
Ubicación: Puebla, Mexico.
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Consulta nuSOAP

registra los complexType para ambos casos, aqui tiene un buen ejemplo: http://www.wackylabs.net/2004/07/cre...-using-nusoap/

Etiquetas: nusoap
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 00:02.