php
  • html
  • mysql
  • sql
  • 2013-05-21 139 views 0 likes 
    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

    @Kamil,檢查OP原來的帖子的最後一行:「_什麼我想要做的是有一個PHP文件與我所有的客戶功能,如更新的細節,選擇細節(上面的一個)等。「它的標題可能不是很理想,但它反映了我的理解,並且比原來的要好得多。 –

    回答

    4

    返回一個值,我想你應該只返回$fetch,然後訪問它作爲一個變量的函數之外。

    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

    你需要從你的函數return $variable;

    0

    在您的代碼中,變量$cust_firstname;僅在該函數中可見。

    請仔細閱讀本:PHP variable scope

    它是這樣工作,以減少內存使用的Web服務器上 - 當函數結束 - 變量被銷燬並釋放內存。

    基本上 - 你必須return這個價值莫名其妙。戴夫陳在上面/下面寫了很好的答案,你可以使用他的代碼。


    順便說一句,你可以使用extract();功能,降低您的代碼大小,節省了大量的時間。

    它的工作原理是這樣的:

    $fetch = mysql_fetch_assoc($getcustomer); 
    
    extract($fetch, EXTR_PREFIX_ALL, "cust_"); // creates variables from associative array 
    
    echo $cust_firstname; // magic! :) 
    
    相關問題