2015-01-29 2 views
0

Я пытаюсь получить зону, запустив функцию PHP, основанную на месте, которое уже было отправлено.MYSQLi PHP fetch array

Использование метода 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, который обычно работает для меня, не дает результата из запроса.

Кто-нибудь видит, что не так?

Пожалуйста, дайте мне знать. Спасибо.

+0

Какого обратной связи вы ожидаете? массив или простую строку? – ceadreak

ответ

1

Вы забыли о переменных правилах области видимости РНР:

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

$dbc Поскольку не определен в функции, вы используете локальную null ручку, которая является недействительной. Если бы у вас в вашем коде была бы некоторая обработка ошибок, вам сообщили об этой проблеме.

Попробуйте

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

вместо этого. Никогда не принимайте успех. Всегда принимайте неудачу, проверяйте эту неудачу и относитесь к успеху как к приятному удивлению.

+1

op имеет вызов real_escape ранее ... –

+0

Я пошел вперед и включил файл базы данных, чтобы использовать мое соединение $ dbc. Все еще никаких результатов. –

0

Хорошо ... Я понял это, благодаря помощи Марка 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);