Доброе время суток.
По заданию мне нужно выбрать из бд (в которой музыканты, постановщики, актеры) тех, кто попал в театр в определенном году. Реализовал я это так:
<form method="POST" action="http://localhost/name/"><span>Получить список и общее число все работников театра, актеров, музыкантов, по стажу работы в театре, по половому признаку, году рождения, возрасту, признаку наличия и количества детей, pазмеpу заработной платы.</span>
<hr />
<p style="text-align: left;"><select name="zvanie" value="Профессия">
<option selected="selected">Выберите профессию</option>
<option value="all">Все работники</option>
<option value="actor">Актеры</option>
<option value="music">Музыканты</option>
<option value="postan">Постановщики</option>
</select>
Введите год начала работы сотрудника в театре: <input type="number" name="datejob" value="2017" /></p>
<input type="submit" value="отправить" />
в PHP я перевел значения из массива POST в переменные:
$datejob = $_POST['datejob'];
$zvanie = $_POST['zvanie'];
И вот как выглядит SQL запрос:
$sql = "SELECT *
FROM `$zvanie`
WHERE YEAR(`Expirience`) = `$datejob`";
$result = $conn->query($sql);
После которого идет вывод данных:
while ($row = $result->fetch_assoc())
{
echo '<tr>';
echo '<th>'.$row['id'];
echo '</th>';
echo '<th>'.$row['Surname'];
echo '</th>';
echo '<th>'.$row['First_Name'];
echo '</th>';
echo '<th>'.$row['Last_Name'];
echo '</th>';
echo '<th>'.$row['Title_Rank'];
echo '</th>';
echo '<th>'.$row['Expirience'];
echo '</th>';
echo '<th>'.$row['Sex'];
echo '</th>';
echo '<th>'.$row['B_Y'];
echo '</th>';
echo '<th>'.$row['Children'];
echo '</th>';
echo '<th>'.$row['Zp'];
echo '</th>';
echo '<th>'.$row['voice'];
echo '</th>';
echo '<th>'.$row['height'];
echo '</th> </tr>';
}
echo '</table>';
После отправки формы выходит ошибка:
Fatal error: Call to a member function fetch_assoc() on a non-object in Z:\home\localhost\www\name\index.php on line 75
75 строка это начало цикла while из прошлого кода
И кстати, если здесь:
$sql = "SELECT *
FROM `$zvanie`
WHERE YEAR(`Expirience`) = `$datejob`";
$result = $conn->query($sql);
вместо переменной $datejob поставить обычное число (2009), то все работает.
Подскажите пожалуйста как решить данную проблему