2014-12-26 4 views
0

내 데이터베이스의 테이블에 쿼리를 실행하려고하고 다른 테이블의 assistance 필드를 얻기 위해 쿼리를 실행하는 행의 id 필드를 실행하려고합니다.PHP mysql_query 관련 검색어

는 내가 할 노력하고있어 코드는 웹 서비스입니다

, 내 생각은 ;에 의해 분리 된 첫 번째 상담의 모든 필드하지만 두 번째 테이블의 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의 아주 오래된 버전이다. 문제는 배열 출력 쿼리 필드가 나에게 나타나지만 consultation2의 "assistance"필드에 지정된 공간이 비어 있다는 것입니다. 문제를두기 위해 게시물을 편집해도 괜찮습니까? "빈 문자열을 반환합니다. – mdl

+0

sql에서 잘못된 인용문을 사용하고 있습니다 : '... WHERE id ='". $ registro [ 'id']. "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);