2016-01-07 5 views
0

Я довольно новичок в PHP. Я создал раскрывающийся список, который показывает список ингредиентов, которые являются (мясо, вегетарианское или вегетарианское). Когда пользователь регистрируется на моем веб-сайте, они выбирают, какую диету они следуют, и это вставляется в базу данных в колонку «dietID».неожиданный T_VARIABLE, почему мой раскрывающийся список не находит переменную, которую я создал?

Я хочу, чтобы раскрывающийся список автоматически показывал только мясо или вегетарианское ИЛИ вегетарианское перечни ингредиентов, ЗАВИСИМО ОТ dietID пользователей «они зарегистрированы как.

Ошибка я получаю

неожиданный '$ _SESSION' (T_VARIABLE) ..... по линии 42.

(линия 42 является ЗЕЬЕСТ)

require_once("connect.php"); 
if (!$db_server) { 
    die("Unable to connect to MySQL: " . mysqli_connect_error()); 
} else { 
    mysqli_select_db($db_server, $db_database); 
    $query = "SELECT * FROM ingredients WHERE dietID="$_SESSION['diet']""; 
    $result = mysqli_query($db_server, $query); 
    if (!$result) 
     die("Query failed: " . mysqli_error($db_server)); 
    while ($row = mysqli_fetch_array($result)) { 
     $str_options .= "<option value='" . $row['ID'] . "'>"; 
     $str_options .= $row['ingredient']; 
     $str_options .= "</option>"; 
    } 
} 

и форма:

<form method="post" action="chefsclaw.php"> 
Which ingredient are you interesting in finding out the healthy alternatives for? 
<br> 
<br> 
<select name="choice"> 
<?php 
echo $str_options; 
?> 
</select> 
<br> 
<br> 
<input type="submit" name="submit" value="Lookup" /> 
</form> 

N.B Я создал переменные для dietID на странице регистрации. Эти переменные следующие:

$db_diet = $row['dietID']; 

$_SESSION['diet'] = $db_diet; 

Я был бы признателен за любые указания.

EDIT: остальная часть кода обработки формы:

<?php // connect to database 
require_once 'connect.php'; 
require_once 'checklog.php'; 
require_once 'functions.php'; 
mysqli_select_db($db_server, $db_database); 
$str_message = $message = $str_comments = $output = ""; 
if (!$db_server) { 
    die("Unable to connect to MySQL: " . mysqli_connect_error()); 
} else { 
    // this tests if look up form has an input 
    if(trim($_POST['submit']) == "Lookup") { // set to value of your submit 
     if (isset($_POST['choice'])) { //Capture form data, if anything was submitted 
      $choice = clean_string($db_server, $_POST['choice']); 
      $query = "SELECT ingredient, alternative, dietID FROM ingredients WHERE ID=$choice"; 
      mysqli_select_db($db_server, $db_database); // query the database 
      $result = mysqli_query($db_server, $query); 

      if (!$result) 
       die("Database access failed: " . mysqli_error($db_server) . $query); 

      if ($row = mysqli_fetch_array($result)) { // if there are any rows, print out the contents 
       $output = 'The healthy alternatives for ' . $row['ingredient'] . ' could be ' . $row['alternative'] . ' which would suit a ' . $row['dietID'] . ' based diet. '; 

      } else { 
       $output = 'The ingredient selected was not found in the database'; 
      } 
      mysqli_free_result($result); 
     } else { 
      $output = 'No ingredient was selected'; 
     } 
    } 

} 
+1

'WHERE dietID = '». $ _ SESSION [ 'диета']. "'";. 'Там Теперь я могу съесть –

+0

я вижу котировки с в кавычках –

+0

@ Fred-II- большой спасибо, что.! сортировка этой ошибки, но теперь выпадающий список пуст! – clh

ответ

0

У вас есть проблемы с кавычками в кавычках, попробуйте это.

$query = "SELECT * FROM ingredients WHERE dietID='".$_SESSION['diet']."'"; 
+0

Да, я это уже видел. –

+0

Мой плохой, пропустил ваш комментарий. – RCrowt

0

Благодаря помощи commentor Фред -ii- мне нужно, чтобы изменить свое SELECT заявление следующего

$query = "SELECT * FROM ingredients WHERE dietID='".$_SESSION['diet']."'"; 

мне тогда нужно изменить переменную SESSION в

$_SESSION['diet'] = $dietopt; 

, чтобы «захватить» правильные данные, представленные первоначально радиокнопкой в ​​моей регистрационной форме (где пользователь отправляет свой «идентификатор диеты».)

Большое спасибо за помощь.

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