2016-10-21 4 views
0

데이터베이스의 전체 테이블을 가져 오는 select 문이 있습니다.문으로 모두 선택하고 특정 행을 에코합니다.

if ($select = $db -> prepare("SELECT service_id, service_name, service_cost FROM services")) 
{ 
    $select -> execute(); 
    $select -> bind_result($service_id, $service_name, $service_cost); 
    $select -> fetch(); 
    $select -> close(); 
} 

은 (내가이 예에서 query 대신 prepare을 사용할 수 있습니다 알고 있습니다.)

출력

service_id | service_name | service_cost 
1    Artwork   80.00 
2    Printing   60.00 
3    Binding   20.00 
4    Finishing  30.00 

그래서 지금은 내 처분에 서비스 테이블에서 모든 데이터를 가지고 , 나는 특정 장소에서 어떤 것들을 반향시킬 수 있기를 원한다. 내 페이지의 어딘가에서 인쇄중인 2의 ID로 서비스를 에코하려는 경우 페이지 아래로 인쇄하는 비용이 더 들었을 수도 있습니다. 그걸 얻기 위해서 WHERE id=?이라는 두 개의 새로운 문장을 쓰지 않고도이 작업을 수행 할 수 있습니까?

같은 것 echo $service_name(2) 2는 ID입니까?

이와 비슷한 것이 있습니까?

내가하려는 일을 수행하는 가장 좋은 방법은 무엇입니까?

if ($select = $db -> prepare("SELECT service_id, service_name, service_cost FROM services")) 
{ 
    $select -> execute(); 
    $select -> bind_result($service_id, $service_name, $service_cost); 
    $select -> fetch(); 
    while ($stmt->fetch()) { 
     if($service_id==2)  
     { 
      printf("%s %s\n", $service_name, $service_cost); 
     } 
    } 
    $select -> close(); 
} 

:

$id = 2; 
echo $services[$id]['service_name']; 

답변

1

해결책은 이것이다 :

$services = array(); 
foreach ($result as $r) { 
    $services[$r['service_id']] = $r; 
} 

지금 당신이 ID에 의해 정보를 얻을 수 있습니다 :

+0

아직 준비가되지 않은'$ id'를 쿼리의 일부로 포함하고 있습니다. – ShiraNai7

+0

고유 한 ID를 사용하고 있으므로 아래 예제를 그대로 사용하고 있습니다 (나는 $ id 나 자신을 위생 처리 할 것이다). 내 print_query_variable ('2', 'service_name');'을 내 페이지에 넣으면 var_dumped가 두 인수가 모두 누락되었다는 메시지가 나올 때 "null의 멤버 함수를 호출합니다."라는 메시지가 나타납니다. –

+1

네, 물론 전에 $ db 객체를 초기화해야합니다. –

0

당신은 당신의 데이터가 당신이 원하는 것처럼 행동 변환 할 수 있습니다 하지만 어쩌면 당신은 이것을 좋아할 것입니다 (ID가 고유하다고 가정) :

function print_query_variable($id, $variable_name) 
{ 
if ($select = $db -> prepare("SELECT service_id, service_name, service_cost FROM services WHERE service_id=$id")) 
{ 
    $select->execute(); 
    $select->bind_result($service_id, $service_name, $service_cost); 
    $select->fetch(); 
    $select->fetch(); 
    $select->close(); 
    return $$variable_name; 
} 

} 
관련 문제