从另一个函数访问sql表中提取的行

时间:2013-11-22 23:06:43

标签: php sql

我在名为auxiliary.php的文件中有一个名为extractFromID()的php辅助函数,它在数据库中查询具有特定ID值的表中的特定行,然后从该行中提取所有列。

function extractFromID() {
    $connect = mysql_connect("localhost", "root","") or die ("erro a abrir a ligação.");
    mysql_select_db ("hospitaldatabase");

    $query = 'SELECT * FROM ' .$_SESSION['listtype']. ' WHERE (ID_' .$_SESSION['listtype']. '="'.$_SESSION['id'].'")';
    $results = mysql_query($query) or die(mysql_error());
     while($rows =  mysql_fetch_array($results){
         extract($rows); 
     }
}

从另一个文件,我试图使用

从$ rows访问函数extractFromID()提取的变量
<?php

include('auxiliary.php');

extractFromID();

虽然,我似乎无法访问提取的值,因为我得到了未定义的索引错误。我做错了什么?

1 个答案:

答案 0 :(得分:2)

您需要了解变量范围。在函数内声明变量时,其范围仅限于该函数。您可以通过将其声明为$GLOBAL来扩展其范围,但在您的情况下,最佳解决方案是return您要使用的值

function extractFromID() {
    $connect = mysql_connect("localhost", "root","") or die ("erro a abrir a ligação.");
    mysql_select_db ("hospitaldatabase");

    $query = 'SELECT * FROM ' .$_SESSION['listtype']. ' WHERE (ID_' .$_SESSION['listtype']. '="'.$_SESSION['id'].'")';
    $results = mysql_query($query) or die(mysql_error());
    $data = array(); 
    while($rows =  mysql_fetch_assoc($results)){
         $data[] = $rows; 
    }
    return $data;
}

$myvars = extractFromId();
echo $myvars[0]['fieldname'];

对于未定义的变量,在设置session_start()变量之前,您可能没有在页面顶部调用$_SESSION。这意味着它们是未定义的。