Вот код, который вызывает у меня проблему:
$letter = $_POST['artistButton'];
$result = $mysqli->query("SELECT * FROM `Generic` WHERE `songName` LIKE '$letter%'");
$row = $result->fetch_array();
while ($row = $result->fetch_array()) {
$Artist = $row['Artist'];
$songName = $row['songName'];
$Duration = $row['Duration'];
$URL = $row['URL'];
$Genre = $row['Genre'];
echo "<input type='submit' value='$songName' name='artistButton'>";
echo "<br />";
}
Утверждение верно, я сохранил его в переменной и распечатал на экране, затем запустил из базы данных, и он напечатал результаты, которые я хотел, так что это определенно не так. По какой-то причине, хотя это не отображается. Я предполагаю, что это как-то связано с тем, что я испортил, преобразуя из mysql в mysqli. Спасибо -Сэм
Ясно, что некоторые коды вырезаны, но попробуйте удалить это лишнее:
$row = $result->fetch_array();
И использовать:
while($row = $result->fetch_assoc()) {
Так как вы все равно заинтересованы в ассоциативных индексах.
Важное примечание: так как вы используете mysqli_*
используйте вместо этого его параметризованные запросы. Не используйте напрямую $_POST
значения по запросу.
$letter = "{$_POST[artistButton]}%";
$stmt = $mysqli->prepare('SELECT * FROM `Generic` WHERE `songName` LIKE ?');
$stmt->bind_param('s', $letter);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()) {
$Artist = $row['Artist'];
$songName = $row['songName'];
$Duration = $row['Duration'];
$URL = $row['URL'];
$Genre = $row['Genre'];
echo "<input type='submit' value='$songName' name='artistButton'>";
echo "<br />";
}
Других решений пока нет …