![triste](http://static.forosdelweb.com/fdwtheme/images/smilies/frown.png)
Bueno Gracias a todos aquellos que me kieran ayudar, aqui os dejo el codigo:
servidor:
Código PHP:
<?php
/*----------------------------CREACIÓN DEL SERVICIO WEB--------------------------------------------------*/
// Incluimos las clases de SOAP:
require("lib/nusoap.php");
// Creamos el objeto del servidor:
$servidor = new soap_server();
$namespace="http://localhost/services";
// Generación del WSDL
$servidor->debug_flag=false;
$servidor->configureWSDL('ApplicationServices',$namespace);
$servidor->wsdl->schemaTargetNamespace = $namespace;
// Agregamos un tipo de dato complejo
$servidor->wsdl->addComplexType(
"datosArticulos",
"complexType",
"struct",
"all",
"",
array(
"id" => array("name"=>"id", "type"=>"xsd:int"),
"descripcion" => array("name"=>"descripcion", "type"=>"xsd:string"),
"precio" => array("name"=>"precio", "type"=>"xsd:double"),
"seccion" => array("name"=>"seccion", "type"=>"xsd:int"),
"tipoarticulo" => array("name"=>"tipoarticulo", "type"=>"xsd:int"),
"seccion" => array("name"=>"seccion", "type"=>"xsd:int"))
);
//Lista de Articulos
$servidor->wsdl->addComplexType(
"ListaArticulos",
"complexType",
"array",
"",
"SOAP-ENC:Array",
array(),
array(
array("ref" => "SOAP-ENC:arrayType",
"wsdl:arrayType" => "tns:datosArticulos[]")),
"tns:datosArticulos");
// Registramos la función que queremos exponer como servicio web
$servidor->register("ObtenerArticulos", array("seccion" => "xsd:int","tarticulo" => "xsd:int","tienda" => "xsd:int","inicial" => "xsd:int","cantidad" => "xsd:int","ordenar" => "xsd:string"), array("return"=>"tns:ListaArticulos"), $namespace);
$servidor->register("NumArticulosTotales", array("seccion" => "xsd:int","tarticulo" => "xsd:int","tienda" => "xsd:int"), array("return"=>"xsd:int"), $namespace);
function ObtenerArticulos($seccion, $tarticulo, $tienda, $inicial, $cantidad, $ordenar){
if (is_int($seccion) && is_int($tarticulo) && is_int($tienda)){
$DBlink = @mysql_connect("localhost", "root", "");
if($tienda==-1){
$sql="SELECT a.articuloID as id, a.descripcion as descripcion, a.precio as precio,
s.descripcion as seccion, t.descripcion as tipoarticulo
FROM articulo a, seccion s, tipoarticulo t
WHERE a.tipoArticuloID = t.tipoArticuloID
AND s.seccionID = a.seccionID
AND a.seccionID =". $seccion."
AND a.tipoArticuloID = ".$tarticulo." ORDER BY precio ".$ordenar." LIMIT ".$inicial.",".$cantidad;
}else{
$sql="SELECT a.articuloID as id, a.descripcion as descripcion, a.precio as precio,
s.descripcion as seccion, t.descripcion as tipoarticulo
FROM articulo a, seccion s, tipoarticulo t
WHERE a.tipoArticuloID = t.tipoArticuloID
AND s.seccionID = a.seccionID
AND a.seccionID =".$seccion."
AND a.tipoArticuloID =".$tarticulo."
AND a.tiendaID = ".$tienda." ORDER BY precio ".$ordenar." LIMIT ".$inicial.",".$cantidad;
}
$DBresult = @mysql_db_query('proyecto_s',$sql);
/*// comprobación simple de error
if (!$DBresult) {
return new soap_fault('Server', '', 'Error Interno del Servidor.');
}*/
mysql_close($DBlink);
// retornamos los datos
return mysql_fetch_array($DBresult, MYSQL_ASSOC);
}
// aceptamos solo enterpos
else {
return new soap_fault('Client', '', 'Los parametro a pasar solo deben ser enteros.');
}
}
function NumArticulosTotales($seccion, $tarticulo, $tienda){
if (is_int($seccion) && is_int($tarticulo) && is_int($tienda)){
$DBlink = @mysql_connect("localhost", "root", "");
if($tienda==-1){
$sql="SELECT a.articuloID as id, a.descripcion as descripcion, a.precio as precio,
s.descripcion as seccion, t.descripcion as tipoarticulo
FROM articulo a, seccion s, tipoarticulo t
WHERE a.tipoArticuloID = t.tipoArticuloID
AND s.seccionID = a.seccionID
AND a.seccionID =". $seccion."
AND a.tipoArticuloID = ".$tarticulo." ORDER BY precio";
}else{
$sql="SELECT a.articuloID as id, a.descripcion as descripcion, a.precio as precio,
s.descripcion as seccion, t.descripcion as tipoarticulo
FROM articulo a, seccion s, tipoarticulo t
WHERE a.tipoArticuloID = t.tipoArticuloID
AND s.seccionID = a.seccionID
AND a.seccionID =".$seccion."
AND a.tipoArticuloID =".$tarticulo."
AND a.tiendaID = ".$tienda." ORDER BY precio";
}
$DBresult = @mysql_db_query('proyecto_s',$sql);
/*// comprobación simple de error
if (!$DBresult) {
return new soap_fault('Server', '', 'Error Interno del Servidor.');
}*/
$num = mysql_num_rows($DBresult);
mysql_close($DBlink);
// retornamos los datos
return $num;
}
// aceptamos solo enterpos
else {
return new soap_fault('Client', '', 'Los parametro a pasar solo deben ser enteros.');
}
}
// Enviar el resultado como una respuesta SOAP por HTTP
if (isset($HTTP_RAW_POST_DATA)) {
$input = $HTTP_RAW_POST_DATA;
}
else {
$input = implode("\r\n", file('php://input'));
}
$servidor->service($input);
exit();
?>
![Adios](http://static.forosdelweb.com/fdwtheme/images/smilies/adios.gif)