2014-12-26 34 views
0

我试图运行一个查询到我的数据库中的表和该行的id字段,该字段返回我运行查询以获取不同表的assistance字段。php mysql_query相关查询

我想要做的代码是一个Web服务,我的想法是品牌被;分开的第一次协商的各个领域,但第二个表的assistance,并分开由外地返回的每一行:

我刚刚开始用PHP编程,所以如果我没有很好地表达自己或者提出非常基本的问题,我很抱歉。

感谢您的时间和帮助。

CODE

if($tabla =="servicio") 
    { 
     $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); 
    } 
+0

什么问题?请注意,您缺少表名称上的关闭反引号,并且不推荐使用'mysql_ *'函数。顺便说一句,返回类似json结构的东西会使处理和解析变得更容易。 – jeroen

+0

@ jeroen如果真的mysql_ *已过时,但我使用的主机仍然存在,有一个非常旧的版本的PHP。问题是阵列输出查询字段在我看来,但在专用于咨询字段“协助”的空间2中是空的。 如果你不介意我编辑帖子把问题两个是该查询“返回一个空字符串 – mdl

+0

你在你的sql中使用了错误的引号:'... WHERE id ='”。$ registro [ ''AND ...'。你可能应该使用JOIN而不是在你的循环中查询数据库。 – jeroen

回答

1

更好的SQL是

$consulta = "SELECT `table_a`.*, `table_b`.`asistencia` 
    FROM `".$tabla."` `table_a` 
     JOIN `voluntarioServicio` `table_b` ON `table_a`.`id` = `table_b`.`id`;"; 

,因为你得到的一切内选择

1

谢谢,我已经解决了。我在这里离开代码,我希望有人会服务。

CODE

 $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"; 
      $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']};{$registro['asistencia']}"; 
        $arraySalida[]= $cadena; 
      endwhile; 

      echo implode(":",$arraySalida);