Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] webService php

Estas en el tema de webService php en el foro de PHP en Foros del Web. Hola a todos. Estoy un poco verde en php y no sé si lo que quiero conseguir es realizable o no. Tengo un pequeño servicio ...
  #1 (permalink)  
Antiguo 24/12/2014, 04:35
 
Fecha de Ingreso: febrero-2013
Mensajes: 25
Antigüedad: 11 años, 9 meses
Puntos: 2
Pregunta webService php

Hola a todos.

Estoy un poco verde en php y no sé si lo que quiero conseguir es realizable o no.

Tengo un pequeño servicio web que me devuelve los datos de una tabla de la siguiente manera:

fila1col1; fila1col2; fila1col3,...: fila2col1;fila2col2;...

(va poniendo los campos de cada fila separados por ; y antes de poner el primero de la segunda fila mete ":")

CODIGO:

Código:
$consulta = "SELECT `tipo` , `nombre` , `descripcion` , `hora` , `lugar` , `duracion` `horacero` FROM `".$tabla;
	
		$resultado= mysql_query($consulta,$enlace);
	
		$arraySalida = array();
		while($registro = mysql_fetch_assoc ($resultado) ):
			$cadena = "{$registro['tipo']};{$registro['nombre']};{$registro['descripcion']};{$registro['hora']};{$registro['minuto']};{$registro['lugar']};{$registro['duracion']};{$registro['fecha']};{$registro['horacero']}";
			$arraySalida[]= $cadena;
		
		endwhile;
		
	echo implode(":",$arraySalida);

Lo que quiero conseguir es que antes de que empiece a poner los campos de la segunda fila haga una consulta a otra tabla y ponga al final de la cadena antes de ":" y del primer campo de la segunda fila el campo que consulte de la otra tabla

Muchas gracias!!
  #2 (permalink)  
Antiguo 24/12/2014, 07:16
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: webService php

usa select anidados
por si no sabes que es, has click aqui
  #3 (permalink)  
Antiguo 26/12/2014, 04:52
 
Fecha de Ingreso: febrero-2013
Mensajes: 25
Antigüedad: 11 años, 9 meses
Puntos: 2
Respuesta: webService php

Gracias, he intentado poner este código:

CODIGO
Código:
                $consulta = "SELECT `tipo` , `nombre` , `descripcion` , `hora` , `minuto` ,`lugar` , `duracion`,`fecha` , `horacero`, `id` FROM `".$tabla;
 
		$resultado= mysql_query($consulta,$enlace);
 
 
		$arraySalida = array();
		while($registro = mysql_fetch_assoc ($resultado) ):
 
                        $consulta2 = "SELECT `asistencia` FROM `voluntarioServicio` WHERE id = `".$registro['id']."` AND emei = '".$emei."' ";
		        $resultado2= mysql_query($consulta,$enlace);
                        $registro2 = mysql_fetch_assoc ($resultado2);
			$cadena = "{$registro['tipo']};{$registro['nombre']};{$registro['descripcion']};{$registro['hora']};{$registro['minuto']};{$registro['lugar']};{$registro['duracion']};{$registro['fecha']};{$registro['horacero']};{$registro2['asistencia']}";
			$arraySalida[]= $cadena;
 
		endwhile;
 
	echo implode(":",$arraySalida);
Pero no me funciona, el caso es que en la primera consulta cojo un id y tengo que buscar ese id y el emei en otra tabla y devolver el valor asistencia ... no sé si se puede hacer asi o tengo que buscar otra forma
  #4 (permalink)  
Antiguo 26/12/2014, 08:21
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: webService php

tengo varias apreciaciones.
1 eso no son select anidados
2 el ID de voluntarioServicio es el mismo ID de la $tabla que consultas primero?
3 asi no se arma un array ( "{$registro['tipo']};{$registro['nombre']};{$registro['descripcion']};)
  #5 (permalink)  
Antiguo 26/12/2014, 12:05
 
Fecha de Ingreso: febrero-2013
Mensajes: 25
Antigüedad: 11 años, 9 meses
Puntos: 2
Respuesta: webService php

Cita:
Iniciado por enlinea777 Ver Mensaje
tengo varias apreciaciones.
1 eso no son select anidados
2 el ID de voluntarioServicio es el mismo ID de la $tabla que consultas primero?
3 asi no se arma un array ( "{$registro['tipo']};{$registro['nombre']};{$registro['descripcion']};)
Si, el ID de la tabla voluntarioServicio es el mismo que el de la primera tabla.

Esa forma de armar un array la vi en un post de este foro y es la que suelo utilizar. Uso los webServices para rellenar clases en java y siempre meto los campos de la clase entre ; y cuando voy a meter un objeto nuevo pongo los : porque luego con el split de java se saca muy rapido y fácil.

¿Qué me recomiendas?
  #6 (permalink)  
Antiguo 26/12/2014, 12:18
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: webService php

tu respuesta es SELECT ANIDADO:

Código PHP:
 $consulta "SELECT tipo,nombre,descripcion,hora,minuto ,lugar,duracion,fecha,horacero,id,asistencia FROM (
 SELECT "
.$tabla.".*, voluntarioServicio.asistencia  FROM ".$tabla."
 left join voluntarioServicio on ("
.$tabla.".id=voluntarioServicio.id)
 ) as tabla"
;
 
$resultadomysql_query($consulta,$enlace);
         
$arraySalida = array();
        while(
$registro mysql_fetch_assoc ($resultado) ):
 
            
$cadena "{$registro['tipo']};{$registro['nombre']};{$registro['descripcion']};{$registro['hora']};{$registro['minuto']};{$registro['lugar']};{$registro['duracion']};{$registro['fecha']};{$registro['horacero']};{$registro['asistencia']}";
            
$arraySalida[]= $cadena;
         endwhile;
 
    echo 
implode(":",$arraySalida); 
  #7 (permalink)  
Antiguo 26/12/2014, 12:33
 
Fecha de Ingreso: febrero-2013
Mensajes: 25
Antigüedad: 11 años, 9 meses
Puntos: 2
Respuesta: webService php

Cita:
Iniciado por enlinea777 Ver Mensaje
tu respuesta es SELECT ANIDADO:

Código PHP:
 $consulta "SELECT tipo,nombre,descripcion,hora,minuto ,lugar,duracion,fecha,horacero,id,asistencia FROM (
 SELECT "
.$tabla.".*, voluntarioServicio.asistencia  FROM ".$tabla."
 left join voluntarioServicio on ("
.$tabla.".id=voluntarioServicio.id)
 ) as tabla"
;
 
$resultadomysql_query($consulta,$enlace);
         
$arraySalida = array();
        while(
$registro mysql_fetch_assoc ($resultado) ):
 
            
$cadena "{$registro['tipo']};{$registro['nombre']};{$registro['descripcion']};{$registro['hora']};{$registro['minuto']};{$registro['lugar']};{$registro['duracion']};{$registro['fecha']};{$registro['horacero']};{$registro['asistencia']}";
            
$arraySalida[]= $cadena;
         endwhile;
 
    echo 
implode(":",$arraySalida); 
Muchas gracias, va de lujo el código perdona por no entender bien lo del selec aninado, soy muy torpe

Etiquetas: 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:43.