dazle
@dazle
Хороший электрик, но в душе программист

Из базы данных взять столбец и занести его в массив JS без ключей. Возможно ли так?

Есть SQL запрос на вывод всех песен:
$res = mysqli_query($bd, "SELECT * FROM users INNER JOIN rus ON rus.idpolz=users.id ORDER BY reyting DESC");
while($row = mysqli_fetch_array($res))
{
echo "<audio id=audio src=./mp3/".$row['file']." data-mp3=".$row['file']." style=width:500px controls></audio>";	
}

В таблице rus есть столбец file там идет полное название песни:
605ef607b0ead625017552.png
Нужно перенести все содержимое столбца file в массив JS в таком виде:
let playlist = [
Helloy.mp3,
Treck10.mp3,
Treck2.mp3,
 ];

Пробовал создать массив в JS и занести туда через data-* ,но почему то не выходит:
первый способ дает массив с ключами:
let playlist = element.getAttribute("data-mp3");
2 ой способ ваще не робит, возможно я делаю что то не так (закинул сразу в массив нахождение элемента по id.dataset.data-mp3):
let idAudio = document.getElementById('audio');
let playlist = [
idAudio.dataset.mp3,
]

Потом есть еще вариант сделать массив в Php и каким то образом передать в JS:
$mass = array();
while($rws = mysqli_fetch_assoc($res))
{
   $mass[] = $rws['file'];  
<script>
let playlist = [
<?php $mass[0] ?>,
<?php $mass[1] ?>,
<?php $mass[2] ?>,
]
</script>
}

Проблема в том что массив на находит 1-ую строку в таблице а начинает сразу со второй: Array ( [0] => Track10.mp3 [1] => Track2.mp3 ) хз почему. Вторая проблема в том что когда пользователь добавит песню массив увеличится и мне надо будет собственноручно добавлять в массив <?php $mass[3] ?>,<?php $mass[...] ?>,а если я буду не начеку то мой аудио плеер не сможет найти и воспроизвести новые добавленные песни=(
Подскажите кто чем может.
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
let playlist = [...element.querySelectorAll('[data-mp3]')]
  .map(el => el.dataset.mp3);

А HTML вы генерируете с ошибкой. Во-первых, значения всех атрибутов тэга должны быть в кавычках, лучше в двойных. Во-вторых, id тэга не должен повторяться в пределах страницы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект