2015-01-29 2 views
0

이미 제출 된 장소를 기반으로 PHP 함수를 실행하여 영역을 검색하려고합니다.MYSQLi PHP 함수가 배열을 가져옴

FORM 방법 GET을 사용하여 제출 한 후, 내가 검색하고있는 변수는 다음과 같습니다

$place = mysqli_real_escape_string($_GET['place]); 

변수는 직후 영역입니다 :이 변수 모두 위

$zone = getZone($pol); // here is the PHP function call 

는 함수 getZone입니다 이 모양은 다음과 같습니다.

function getZone($place) 
{ 
    $searchZone = "SELECT ZONE FROM zones WHERE PLACE = '".$place."'"; 
    $result = mysqli_query($dbc, $searchZone); 
    $row = mysqli_fetch_array($result); 
    return $row['ZONE']; 
} 

데이터에서 쿼리를 실행할 수 있습니다. base를 반환하고 ZONE을 반환합니다.

이제 정상적으로 작동하는 mysqli_fetch_array가 쿼리 결과를 생성하지 못하고 있습니다.

누구가 잘못 보는가?

알려 주시기 바랍니다. 고맙습니다. 당신은 PHP의 변수 범위 규칙에 대해 잊어 버린

+0

도움이 될? 배열 또는 간단한 행? – ceadreak

답변

1

: $dbc 이후

$result = mysqli_query($dbc, $searchZone); 
         ^^^^---- undefined 

함수에서 정의되지, 당신이 잘못 로컬 null 핸들을 사용하고 있습니다. 코드에서 어떤 종류의 에러 핸들링이라도했다면, 그 문제에 대해 이야기했을 것입니다.

대신

global $dbc; 
$result = mysqli_query(...) or die(mysqli_error($dbc)); 

보십시오. 결코 성공을 가정하지 마십시오. 항상 실패로 간주하고, 실패를 확인하고, 성공을 즐거운 놀라움으로 간주하십시오.

+1

op는 real_escape 콜을 이전에 가지고 있습니다 ... –

+0

저는 $ dbc 연결을 사용할 수 있도록 데이터베이스 파일을 포함 시켰습니다. 아직 결과가 없습니다. –

0

좋아요. Marc B.의 도움을 받아서 알아 냈습니다. 연결 문자열을 제공하지 않았기 때문에 파일에 추가했습니다. 문제는 난과 같이, 실제 기능에 추가 할 필요가있다 :

function getZone($place) 
{ 
    include ("../include/database.php"); 
    // then the rest of the code 

나는 데이터베이스 연결을 포함하면, 지금 영역을 검색 할 수 있어요.

감사합니다.

1

이것은 당신이 피드백의 어떤 종류를 기대

//Assuming $dbc as connection variable 
    function getZone($dbc,$place) 
    { 
    $searchZone = "SELECT ZONE FROM zones WHERE PLACE = '".$place."'"; 
    $result = mysqli_query($dbc, $searchZone); 
    $row = mysqli_fetch_array($result); 
    return $row['ZONE']; 
    } 
    include 'path/to/connectionfile';//Only if you haven't already done that 
    $zone = getZone($dbc,$pol);