Конечно, ваш вопрос много раз задавался другими, и существует множество ответов.Я хотел бы воспользоваться этой возможностью, чтобы помочь вам понять некоторые концепции, которые, по-видимому, отсутствуют, основанные на том, как вы написали свой код.
$sql="SELECT Lname FROM Customers";
$result=mysqli_query($conn,$sql);
Распространено неправильное представление о том, что mysqli_query возвращает результат.Даже более «опытные» программисты иногда используют переменную $ res, думая, что это результат.Фактически это курсор или указатель на набор записей, который возвращается.Следовательно, в некоторых документах переменная $ rs вместо $ res.(Именование не имеет значения для машин, но они помогают вам понять поток данных.)
Затем вы написали следующее:
$lnames=mysqli_fetch_all($result,MYSQLI_ASSOC);
На этом этапе ваши $ lnames содержат всестроки результата.Лучше назвать это $ records.Вы можете просмотреть значения этой переменной:
<code>echo '<pre>'; print_r($records); echo '
';
Если вы хотите распечатать фамилию каждой записи, используйте этот цикл:
foreach ($records as $record){
echo $record['Lname'].'<br>';
}
Обратите внимание на заглавную букву L, как в вашем запросе.
Также fetch_all доступна только с пакетом mysqlnd.Возможно, вы захотите войти в привычку проходить через набор записей:
while ($myrow=mysqli_fetch_assoc($rs)){
echo $myrow['Lname'].'<br>';
}