2016-06-03 3 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 ...

может ли Помогите?

Edit:

На самом деле, когда я называю 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 

Благодарности - -

Thanks,

+0

Использовать '$ _SESSION' – Thamilan

+0

Как использовать это .. ?? Редактировать: nvm - я думаю, что нашел справочную страницу PHP ... – 8bitmagic

+0

есть различные учебники, просто поиск. session_start() - это начало – Thamilan

ответ

1

Изменить вашу функцию, чтобы вернуть значения, не печатает значения:

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; 
} 

Теперь, когда вы звоните, как это:

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);' или если вы хотите как одно и то же использование 'echo ''" .implode ("','", $ varList). '' '; ' – Thamilan

+0

О, черт возьми! Спасибо Thamilan! – 8bitmagic

0

Возможно, лучший способ - включить этот файл на страницу, которую вы хотите использовать, и вызвать функцию для получения списка.

+0

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

+0

Это довольно маленький пример кода, который я использую , но он, похоже, не работает .. – 8bitmagic

+0

на основе вашего кода, кажется, что значение $ list в функции dbCall не присваивается, возможно, вы можете попытаться вернуть $ item, а не возвращать $ list? – Herris

Смежные вопросы