2013-05-21 2 views
0

데이터베이스에서 고객 정보를 가져 오는 쿼리를 작성했지만 다른 페이지에서 사용하고 싶다고 말했습니다. 다른 페이지로 복사하여 붙여 넣기를 사용하고 싶지 않습니다.변수가 함수 외부에서 보이지 않음

함수를 살펴 봤지만 변수를 함수에서 가져 오는 방법을 모르겠습니다.

이 내 현재 함수입니다 :

function getCustomer($customerid) { 

$getcustomer = mysql_query("SELECT * FROM hire_customers WHERE id='".$customerid."'"); 
$fetch = mysql_fetch_assoc($getcustomer); 

$cust_firstname = $fetch['firstname']; 
$cust_lastname = $fetch['lastname']; 
$cust_address = $fetch['address']; 
$cust_town =  $fetch['town']; 
$cust_postcode = $fetch['postcode']; 
$cust_cont1 =  $fetch['contact1']; 
$cust_number1 = $fetch['contactnumber1']; 
$cust_cont2 =  $fetch['contact2']; 
$cust_number = $fetch['contactnumber2']; 
$cust_email =  $fetch['email']; 
$cust_idform1 = $fetch['idform1']; 
$cust_idnfo1 = $fetch['idinfo1']; 
$cust_idform2 = $fetch['idform2']; 
$cust_idinfo2 = $fetch['idinfo2']; 
$cust_enterdby = $fetch['enteredby']; 

} 

이 내 고객 페이지

getCustomer($customerid); 

echo $cust_firstname; 

은 아무것도 밖으로 반향되지 않습니다.

이 작업을 수행하려면 클래스 또는 개체를 조사해야합니까? 내 기능이 잘못됐다.

나는 한 곳에서 모든 고객 기능 (업데이트, 선택 등)을 갖춘 PHP 파일을 갖고 싶습니다.

+0

읽기 [veriable 범위가 무엇인지] 이해하기 [1] [1] : http://php.net/manual/en/language.variables. scope.php –

+0

@GeorgeCummins 그 질문 제목은 끔찍한 ... – Kamil

+0

@ 카밀, OP의 원래 게시물의 마지막 줄을 확인하십시오 : "내가하고 싶은 것은 업데이트 세부 사항과 같이 모든 고객 기능을 가진 PHP 파일을 가지고 있습니다. 세부 사항을 선택하십시오. (위의 내용 중 하나를 선택하십시오.) _ "제목이 이상적이지는 않았지만 이해 했으므로 문제가 반영되어 원래보다 더 좋았습니다. –

답변

4

에서 값을 반환해야합니다.

function getCustomer($customerid) { 
    $customerid = mysql_real_escape_string($customerid); 
    $getcustomer = mysql_query("SELECT * FROM hire_customers WHERE id='".$customerid."'"); 
    $fetch = mysql_fetch_assoc($getcustomer); 
    return $fetch; 
} 

$data=getCustomer($customerid); 

echo data['firstname']; 
3

이것은 당신이 시작할 수 있어야합니다

function getCustomer($customerid) { 

    $getcustomer = mysql_query("SELECT * FROM hire_.. etc"); 
    $customer_data = mysql_fetch_assoc($getcustomer); 

    return $customer_data; // return here 
} 

$customer = getCustomer($customerid); 

$cust_firstname = $customer['firstname']; 
+0

Thx가 빠른 답장을 보내고 XD에서 작동했습니다. –

1

당신은 당신이 단지 $fetch를 반환하고 함수 외부의 변수로 접근해야한다고 생각 함수 return $variable;

0

코드에서 변수 $cust_firstname;은 해당 기능 내에서만 볼 수 있습니다.

이 읽어주십시오 :이처럼 작동 PHP variable scope

웹 서버의 메모리 사용량을 줄이기 위해 - 기능이 끝날 때 - 변수는 파괴되고 메모리는 해제.

기본적으로 - 그 값을 어떻게 든 return해야합니다. 데이브 첸 (Dave Chen)은 훌륭한 답변을 위/아래에 적었습니다. 코드를 사용할 수 있습니다.


BTW 당신은 ​​extract(); 기능을 사용하여 코드 크기를 줄이고 많은 시간을 절약 할 수 있습니다.

그것은 다음과 같이 작동

$fetch = mysql_fetch_assoc($getcustomer); 

extract($fetch, EXTR_PREFIX_ALL, "cust_"); // creates variables from associative array 

echo $cust_firstname; // magic! :) 
관련 문제