Задать вопрос
@oldfag322

Fatal error: Call to a member function fetch_assoc() on a non-object in как исправить?

Доброе время суток.
По заданию мне нужно выбрать из бд (в которой музыканты, постановщики, актеры) тех, кто попал в театр в определенном году. Реализовал я это так:

<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), то все работает.
Подскажите пожалуйста как решить данную проблему
  • Вопрос задан
  • 89 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы