2013-05-29 4 views
-5

Я хочу сделать страницу профиля, ведущую с главной страницы, и когда я зашел в систему и нажал на страницу профиля, у меня есть эта ошибка 2. Я хочу показать имя и фамилию.Неопределенная переменная в php, но определена?

Notice: Undefined variable: first_name in C:\xampp\htdocs\FontLibrary\Profile.php on line 181 

и

Notice: Undefined variable: last_name in C:\xampp\htdocs\FontLibrary\Profile.php on line 183 

Но я уже определил его в, если заявление?

Соответствующий код

<?php 
      session_start(); 
      include 'dbfunctions.php'; 
      $msg = ""; 
      $id = $_SESSION['id']; 
      if (!isset($id)) { 
       $id = $_SESSION['id']; 
      } 

      // Build the SELECT statement 
      $select_query = "SELECT * FROM users WHERE id = ".$id; 

      //Run the Query 
      $result = mysql_query($select_query); 

      if ($result) { 
       $row = mysql_fetch_array($result); 
       $first_name = $row['first_name']; 
       $last_name = $row['last_name']; 
      } 
      ?> 

и

First Name:<?php echo $first_name ?> <br /> 
    Last Name:<?php echo $last_name ?> <br /> 
+4

Что делать, если условие 'if' оценивается как' false'? – nurdglaw

+0

Являются ли эти два фрагмента даже на одной странице? Вы действительно получаете '$ result'? – deceze

+0

Да, они находятся на одной странице. – SpeXial

ответ

4

var_dump() ваш $result, чтобы проверить это содержит то, что вы ожидаете.

Скорее всего, ваш запрос не удался (или ничего не возвратил), поэтому $first_name и $last_name никогда не были установлены, так как они пропустили бы оператор if.

И/Или вы можете инициализировать их перед утверждением if.

$first_name = ""; 
$last_name = ""; 
if ($result) 
{ 
    $row = mysql_fetch_array($result); 
    $first_name = $row['first_name']; 
    $last_name = $row['last_name']; 
} 

В качестве дополнительной заметки функции mysql_ устарели. Пожалуйста, рассмотрите возможность использования mysqli или PDO.

+0

Если это весь скрипт, тогда я не вижу никакого кода подключения к базе данных? Если это просто опущено, тогда когда 'result' является ложным, вы можете попробовать' echo mysql_error(); ', чтобы узнать, что это за ошибка. – MatthewMcGovern

+0

Спасибо! Я уже выяснил причину. Потому что я не добавлял $ link при запуске запроса. – SpeXial

0

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

0

Кажется, что ваш звонок по номеру mysql_query() не возвращает значение.

if ($result) неверно.

Также пожалуйста, пожалуйста, избегайте строк, которые вы передаете в БД! :(

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