Cita:
Iniciado por GatorV Lo raro es esto:
Código:
PHP Notice: Undefined index: idproduc in C:\\Program Files (x86)\\Apache Software Foundation\\Apache2.2\\htdocs\\Prueba\\cliente.php on line 4, referer: http://localhost:9090/Prueba/index.php
Ya que te esta diciendo que no existe el indice idproduc así que seguramente cliente no envía el parámetro cuando pasa ese notice, agrega un chequeo de errores para evitar eso, ej:
Saludos.
Al correrlo sin la correcion salen los siguientes errores:
Cita: PHP Warning: pg_query() [<a href='function.pg-query'>function.pg-query</a>]: Query failed: ERROR: error de sintaxis al final de la entrada\nLINE 1: ...titulo, descripcion, precio from producto where id_producto=\n ^ in C:\\Program Files (x86)\\Apache Software Foundation\\Apache2.2\\htdocs\\Prueba\\ws.php on line 6
PHP Warning: pg_num_rows() expects parameter 1 to be resource, boolean given in C:\\Program Files (x86)\\Apache Software Foundation\\Apache2.2\\htdocs\\Prueba\\ws.php on line 7
PHP Notice: Undefined variable: respuesta in C:\\Program Files (x86)\\Apache Software Foundation\\Apache2.2\\htdocs\\Prueba\\ws.php on line 15
por lo que entiendo que en la funcion obtenerProducto no estra ingresando el parametro por esto:
Cita: .... titulo, descripcion, precio from producto where id_producto=\n...
ya que ne la consulta no muestra el parametro que uno ingresa.
Haciendo la correccion que me sugeriste no muestra el mensaje de 'falta parametro' lo que me hace pensar que el cliente si esta recibiendo el valor de idproduc y puede confirmar que el error esta cuando uno envia el parametro a la funcion por medio del cliente.
Código PHP:
$metodoALlamar = 'obtenerProducto';
$l_stResult = $l_oClient->call(
$metodoALlamar,
array('id' => $parametro),
"http://localhost:9090/Prueba",
"http://localhost:9090/Prueba/ws.php/$metodoALlamar");
o en la funcion de ws.php
Código PHP:
function obtenerProducto($id){
$con=pg_connect("host=localhost dbname=prueba user=admin password=123" ) or die("Error en la conexion a la base de datos");
$sql="select id_producto, titulo, descripcion, precio from producto where id_producto=".$id."";
$busqueda=pg_query($con,$sql) ;
if(pg_num_rows($busqueda)!=0){
while( $row = pg_fetch_object ( $busqueda)) {
$respuesta=array('id_producto' => $row->id_producto,
'titulo' => $row->titulo,
'descripcion' => $row->descripcion,
'precio' => $row->precio);
}
}
return new soapval('return', 'tns:producto', $respuesta);
}
o en el register de ws.php
Código PHP:
$server->register('obtenerProducto',
array('id_producto' => 'xsd:string'),
array('return'=>'tns:producto'),
$miURL);
Gracias