2016-06-03 1 views
0

처음 포스터 ...내 함수가 결과를 전역 변수로 반환하는 방법은 무엇입니까? 여기

이 그냥 사람이 제가 다른 PHP 페이지에서 사용할 수있는 전역 변수로 내 함수의 결과를 반전시킬 수 있는지 ... 궁금
$sql = "SELECT title FROM table_1 WHERE id >= '1' and id <='10'"; 


    function dbCall($servername, $username, $password, $dbname, $sql) { 
     global $item; 
      $conn = new mysqli($servername, $username, $password, $dbname); 
      if ($conn->connect_error) { 
       die("Connection failed: " . $conn->connect_error); 
      } 

        $result = mysqli_query($conn, $sql); 

      if (mysqli_num_rows($result) > 0) { 
        // output data of each row 
        while($row = mysqli_fetch_array($result)) { 

         $item=("'". $row[0]."', "); 
         echo $item; 
        } 
       } else { 
        echo "0 results"; 
      } 
        return $list; 
        $conn->close(); 
      } 

는 현재 그것이 반환

결과 목록 :

'tom', 'mary', 'joseph', 'jim', 'kathy', 'bob', 'luke', 'sam', 'heidi', 'tiffany', 

하지만 내 다른 PHP 페이지에서 전역 변수로이 호출 할 수 없습니다 ...

수있는 도움이 필요하십니까?

편집 : 사실

내가이 일을 다른 페이지 얻을 fucntion 호출 할 때 :

include ("C:\inetpub\wwwroot\db-call.php"); 
$varList = array(dbCall($servername, $username, $password, $dbname)); 
echo $varList; 

을 내가 다시이 결과를 얻을!

'tom', 'mary', 'joseph', 'jim', 'kathy', 'bob', 'luke', 'sam', 'heidi', 'tiffany',Array 

감사를 다시 - -

감사합니다.

+0

사용 '$ _SESSION'을 사용하십시오 – Thamilan

+0

어떻게 사용합니까 ?? 편집 : nvm - PHP 설명서 페이지를 찾은 것 같아요 ... – 8bitmagic

+0

다양한 자습서가 있습니다. session_start()가 처음입니다. – Thamilan

답변

1

변경 함수가 값을 인쇄하지, 값을 반환

include ("C:\inetpub\wwwroot\db-call.php"); 
$varList = dbCall($servername, $username, $password, $dbname); 
echo $varList; 

당신의 $varList 배열, 당신이 그 값으로하여 처리 할 수 ​​있습니다 포함되어 있습니다 당신이 필요합니다

Array 
(
    [0] => tom 
    [1] => mary 
    [2] => joseph 
    [3] => jim 
    [4] => kathy 
    [5] => bob 
    [6] => luke 
    [7] => sam 
    [8] => heidi 
    [9] => tiffany 
) 
+0

감사 Thamil! 어쨌든 한 번에 하나의 문자열로 모든 배열을 호출 할 수 있습니까? – 8bitmagic

+0

implode를 사용하십시오. echo implode ("", $ varList); 또는 원하는 경우 – Thamilan

+0

Oh ... 젠장! Thamilan! 고마워! – 8bitmagic

0

아마도 더 나은 방법은 사용하려는 페이지에이 파일을 포함시키고 함수를 호출하여 목록을 가져 오는 것입니다. 이 같은 호출 할 때 이제

function dbCall($servername, $username, $password, $dbname, $sql) { 
    $item = []; 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $result = mysqli_query($conn, $sql); 

    if (mysqli_num_rows($result) > 0) { 
        // output data of each row 
     while($row = mysqli_fetch_array($result)) { 

      $item[] = $row[0]; 
     } 
    } else { 
     $item[] = "0 results"; 
    } 
    $conn->close(); 
    return $item; 
} 

:

+0

'include ("C : \ inetpub \ wwwroot \ db-call. $ list = array (dbCall ($ servername, $ username, $ password, $ dbname, $ sql)); echo $ list;' – 8bitmagic

+0

이것은 내가 사용하는 코드의 아주 작은 예입니다. ,하지만 작동하지 않는 것 같아 .. – 8bitmagic

+0

코드를 기반으로 dbCall 함수에서 $ list에 값이 할당되지 않은 것처럼 보입니다. 아마도 $ list를 반환하는 대신 $ item을 반환하려고 할 수 있습니다. – Herris

관련 문제