0

私はこのコードを機能させようとしています(おそらく不可能ですが、念のためお願いします):

$query = "SELECT `id`,`department_name`,`operator_id`,`title`,`priority`,`created_time`,`ticket_status`  FROM ".$SupportTicketsTable." WHERE `user_id`=".$_SESSION['id'] ;
    $prepared = $stmt->prepare($query);
    if($prepared){
        if($stmt->execute()){
            $stmt->store_result();
            $result = $stmt->bind_result($id, $dname, $opid, $title, $priority, $dat, $status);
            $departments=array('response'=>'ret','tickets'=>array());
            $departments['tickets']['user']=array();
            if($stmt->num_rows>0){
                while (mysqli_stmt_fetch($stmt)) {
                    switch ($status) {
                        case 0:
                            $stat='Closed';
                            break;
                        case 1:
                            $stat='Open';
                            break;
                        case 2:
                            $stat='Under Assignment';
                            break;
                    }
                    switch ($priority) {
                        case 0:
                            $stat='Low';
                            break;
                        case 1:
                            $stat='Medium';
                            break;
                        case 2:
                            $stat='High';
                            break;
                        case 3:
                            $stat='Urgent';
                            break;
                    }
                    if(isset($_SESSION['operators'][$opid]))
                        $opname=$_SESSION['operators'][$opid];
                    else{
                        retrive_operators();
                        $opname=$_SESSION['operators'][$opid];
                    }
                    $departments['tickets']['user'][]=array('id'=>$id,'dname'=>$dname,'opname'=>$opname,'title'=>$title,'priority'=>$priority,'date'=>$dat,'status'=>$status,"action"=>'<div class="btn-group"><button class="btn btn-info editdep" value="'.$id.'"><i class="icon-edit"></i></button><button class="btn btn-danger remdep" value="'.$id.'"><i class="icon-remove"></i></button></div>');
                }
            }
        }
        else
            echo json_encode(array(0=>mysqli_stmt_error($stmt)));
    }
    else
        echo json_encode(array(0=>mysqli_stmt_error($stmt)));

function retrive_operators(){
if(isset($_SESSION['name'])){
    $mysqli = new mysqli($Hostname, $Username, $Password, $DatabaseName);
    $stmt = $mysqli->stmt_init();
    if($stmt){
        $query = "SELECT `id`,`name`  FROM ".$SupportUserTable." WHERE status='1' OR status='2'" ;
        $prepared = $stmt->prepare($query);
        if($prepared){
            if($stmt->execute()){
                $stmt->store_result();
                $result = $stmt->bind_result($id, $name);
                if($stmt->num_rows>0){
                    $_SESSION['operators']=array();
                    while (mysqli_stmt_fetch($stmt)) {
                        $_SESSION['operators'][$id]=$name;
                    }
                }
            }
        }
    }
}
}

この方法でそれらを実行する方法はありますか? 現時点では、$Hostname, $Username, $Password, $DatabaseName定義されていないと表示されます (ただし、主に最初の mysqli 関数が実行されるためです)。ファイルの先頭、すべての条件または関数の前に設定した var を読み取ることができないようです。の直後session_start()
これらはエラーです(行は報告されたコードに対応しています):

[14-May-2013 20:34:35 UTC] PHP Notice:  Undefined variable: Hostname in C:\xampp\htdocs\php\function.php on line 983

[14-May-2013 20:34:35 UTC] PHP Notice:  Undefined variable: Username in C:\xampp\htdocs\php\function.php on line 983

[14-May-2013 20:34:35 UTC] PHP Notice:  Undefined variable: Password in C:\xampp\htdocs\php\function.php on line 983

[14-May-2013 20:34:35 UTC] PHP Notice:  Undefined variable: DatabaseName in C:\xampp\htdocs\php\function.php on line 983

[14-May-2013 20:34:36 UTC] PHP Notice:  Undefined variable: SupportUserTable in C:\xampp\htdocs\php\function.php on line 986

[14-May-2013 20:34:36 UTC] PHP Notice:  Undefined index: operators in C:\xampp\htdocs\php\function.php on line 823


ありがとう

4

1 に答える 1

0

変数のスコープに差し迫った問題があります。変数スコープを読んで試してください

function retrive_operators(){
    global $Hostname, $Username, $Password, $DatabaseName;
    ...

またはそれらをパラメーターとして渡します

function retrive_operators($Hostname, $Username, $Password, $DatabaseName){
....

そして、関数を呼び出します

retrive_operators($Hostname, $Username, $Password, $DatabaseName);
于 2013-05-14T20:54:07.053 に答える