ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

Поиск треков

 

120
Александр @Aleksandr_Boyko
Народ, у кого есть скрипт поиска треков, из базы данных?? чтобы можно было выставить дату, и на странице показывались все треки которые играли в определённый промежуток времени

68
Алексей @features
А чем вас SQL не устраивает?

120
Александр @Aleksandr_Boyko
features пишет:

А чем вас SQL не устраивает?

ну я пользуюсь базой данных mysql) мне нужно чтобы пользователи находили треки которые играли . что то типа этого **********

68
Алексей @features
Всё равно должна быть база где хранится список треков. Скорей всего это реляционная база, не важно mssql, mysql или postgresql или ещё чего.
Соответственно у приложения должен быть доступ к базе где хранится история, для получения куска этой истории. Для того чтобы получить кусок истории проигранных треков неоходимо иметь поле дата и время проигрывания (обычный timestamp).
Если весь лог треков пишится в файл, то тут сложнее, так как парсить большой файл на каждый запрос не выгодно, проще скриптом загонять его в реляционную базу и оттуда выдавать результат.
Получается что ваше прилоение должно делать запрос к хранилищу истории, получать список и генерить html страничку.

Вывод, не зная ваших инструментов дать готовое решение не возможно, так как нет универсальных решений. Дальше в зависимости от набора инструментов, возможно у форумчан найдётся готовое решение, либо кто-нибудь предложит вам свои услуги.

PS.
xxx: у меня игра вылетает при загрузке. На прошлой версии не вылетала. Что делать?
yyy: Тебя зовут Михаил, тебе 19 лет и ты живёшь с мамой.
xxx: Нет, меня зовут Саша, мне 9, живу с бабушкой
yyy: Видишь, из нас плохие ясновидящие. Логи давай. Причём не все, а только конец, там где написано, отчего вылетело.

120
Александр @Aleksandr_Boyko
features пишет:

Всё равно должна быть база где хранится список треков. Скорей всего это реляционная база, не важно mssql, mysql или postgresql или ещё чего.
Соответственно у приложения должен быть доступ к базе где хранится история, для получения куска этой истории. Для того чтобы получить кусок истории проигранных треков неоходимо иметь поле дата и время проигрывания (обычный timestamp).
Если весь лог треков пишится в файл, то тут сложнее, так как парсить большой файл на каждый запрос не выгодно, проще скриптом загонять его в реляционную базу и оттуда выдавать результат.
Получается что ваше прилоение должно делать запрос к хранилищу истории, получать список и генерить html страничку.

Вывод, не зная ваших инструментов дать готовое решение не возможно, так как нет универсальных решений. Дальше в зависимости от набора инструментов, возможно у форумчан найдётся готовое решение, либо кто-нибудь предложит вам свои услуги.

PS.
xxx: у меня игра вылетает при загрузке. На прошлой версии не вылетала. Что делать?
yyy: Тебя зовут Михаил, тебе 19 лет и ты живёшь с мамой.
xxx: Нет, меня зовут Саша, мне 9, живу с бабушкой
yyy: Видишь, из нас плохие ясновидящие. Логи давай. Причём не все, а только конец, там где написано, отчего вылетело.


********** вот здесь мы делали историю эфира, в базе данных есть все треки

68
Алексей @features
Всю тему читать лень, пролистал 1ю страницу. Вроде вам там активно отвечали и у вас всё получалось. Тем более там вы создавали базу и писали в неё треки, а выше ответили что базы у вас нет. Получается, у вас есть все необходимые данные для генерации html блока.
Чем отличается вывод последних треков от вывода треков игравших в определённым промежуток времени?

120
Александр @Aleksandr_Boyko
features пишет:

Всю тему читать лень, пролистал 1ю страницу. Вроде вам там активно отвечали и у вас всё получалось. Тем более там вы создавали базу и писали в неё треки, а выше ответили что базы у вас нет. Получается, у вас есть все необходимые данные для генерации html блока.
Чем отличается вывод последних треков от вывода треков игравших в определённым промежуток времени?

нужен скрипт поиска по базе данных, используя календарь и время

120
Александр @Aleksandr_Boyko
Aleksandr.Boyko пишет:

features пишет:

Всю тему читать лень, пролистал 1ю страницу. Вроде вам там активно отвечали и у вас всё получалось. Тем более там вы создавали базу и писали в неё треки, а выше ответили что базы у вас нет. Получается, у вас есть все необходимые данные для генерации html блока.
Чем отличается вывод последних треков от вывода треков игравших в определённым промежуток времени?

нужен скрипт поиска по базе данных, используя календарь и время

Человек ставит например дату 19,12,14 и время 08:10-08:20 и ему показывает все треки которые тут играли в это промежуток времени

68
Алексей @features
Тот же самый скрипт, что и вывод последних треков. Просто в SQL запросе надо указать between, либо просто добавить условие (time <= min AND time >= max), ну и убрать лишнее.

120
Александр @Aleksandr_Boyko
features пишет:

Тот же самый скрипт, что и вывод последних треков. Просто в SQL запросе надо указать between, либо просто добавить условие (time <= min AND time >= max), ну и убрать лишнее.

то-есть если я вас правильно понимаю в это скрипт нужно добавить time <= min AND time >= max
<?php
date_default_timezone_set( 'Europe/Kiev' );
mysql_connect("localhost", "Сюда имя пользователя БД", "Сюда пароль") or die (mysql_error ());
mysql_select_db("Сюда имя вашей БД например PESNI") or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
$res = "SELECT Title, time FROM songs ORDER BY time DESC limit 5";
$rs = mysql_query($res);
while($row = mysql_fetch_array($rs)) {
echo $row['time'] . " " . $row['Title'] . "<br />";
}
mysql_close();
?>

68
Алексей @features
Я в условии выше знаки перепутал :)
Должно быть больше минимального, но меньше максимального.
SELECT Title, time FROM songs WHERE time >= min AND time <= max ORDER BY time DESC limit 5

При этом:
ORDER BY указывает порядок сортировки по указанному полю (тут поле time), где DESC указывает порядок сортировки (ASC от меньшего к большему, DESC от большего к меньшему). В ORDER BY по умолчанию включён порядок сортировки ASC
LIMIT указывает количество строк которое вы желаете получить. LIMIT можно не указывать, тогда вы получите весь список.

Отредактировано features - 19.12.2014
120
Александр @Aleksandr_Boyko
features пишет:

Я в условии выше знаки перепутал :)
Должно быть больше минимального, но меньше максимального.
SELECT Title, time FROM songs WHERE time >= min AND time <= max ORDER BY time DESC limit 5

При этом:
ORDER BY указывает порядок сортировки по указанному полю (тут поле time), где DESC указывает порядок сортировки (ASC от меньшего к большему, DESC от большего к меньшему). В ORDER BY по умолчанию включён порядок сортировки ASC
LIMIT указывает количество строк которое вы желаете получить. LIMIT можно не указывать, тогда вы получите весь список.

а как сделать календарь как здесь **********

68
Алексей @features
Вот инструменты с помощью которых вы сможете сделать поля для даты и время:
дата: **********
время: **********

120
Александр @Aleksandr_Boyko
features пишет:

Вот инструменты с помощью которых вы сможете сделать поля для даты и время:
дата: **********
время: **********

Получается вот это календарь
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Datepicker - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script>
$(function() {
$( "#datepicker" ).datepicker();
});
</script>
</head>
<body>

<p>Date: <input type="text" id="datepicker"></p>


</body>
</html>

А это время <!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" href="css/bootstrap.min.css" />
<link type="text/css" href="css/bootstrap-timepicker.min.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap-2.2.2.min.js"></script>
<script type="text/javascript" src="js/bootstrap-timepicker.min.js"></script>
</head>
<body>
<div class="input-append bootstrap-timepicker">
<input id="timepicker2" type="text" class="input-small">
<span class="add-on">
<i class="icon-time"></i>
</span>
</div>

<script type="text/javascript">
$('#timepicker2').timepicker({
minuteStep: 1,
template: 'modal',
appendWidgetTo: 'body',
showSeconds: true,
showMeridian: false,
defaultTime: false
});
</script>
</body>
</html>

Вот теперь возникает вопрос, как это свести, и чтобы они получали данные из моей базы данных

68
Алексей @features
Инпуты оборачиваешь в <form action="ССЫЛКА НА ГЕНЕРАТОР БЛОКА ИСТОРИИ"> так же добавляешь кнопку отправки формы <input type="submit">
И в php получаешь значения, обрабатываешь их и подставляешь в SQL запрос.

Пример формы:

<form action="bal/foo.php">
<input data>
<input time_min>
<input time_max>
<input submit>
</form>


Только у каждого html-тега ID должен быть уникальный, поэтому тебе нужен будет id для timepicker_min и timepicker_max

Отредактировано features - 19.12.2014
120
Александр @Aleksandr_Boyko
features пишет:

Инпуты оборачиваешь в <form action="ССЫЛКА НА ГЕНЕРАТОР БЛОКА ИСТОРИИ"> так же добавляешь кнопку отправки формы <input type="submit">
И в php получаешь значения, обрабатываешь их и подставляешь в SQL запрос.

Примерно так:

<form action="bal/foo.php">
<input data>
<input time_min>
<input time_max>
<input submit>
</form>


Только у каждого html-тега ID должен быть уникальный, поэтому тебе нужен будет id для timepicker_min и timepicker_max

Я тебе сейчас покажусь очень наглым и тупым, но я не пойму как это всё сложить в один скрипт

68
Алексей @features
Я не знаю php ^_^ Поэтому готовое решения не дам ^_^ В целом я с ним знаком, но практики программирования на нём у меня нет.
Ты привёл 2 страницы, тебе надо объединить их в одну.
Инфа по тегу form: **********

Параметр action ты можешь не указывать, тогда у тебя будет вызываться таже самая страница. Таким образом тебе надо в php сделать условие, что если к тебе не пришли параметры, то запрос к базе не делать.

У тебя должна получится страница вида:

<html>
<head>Тут сам знаешь что писать</head>
<body>
<div>
<!-- Тут допустим всякие хедеры, плееры и навигация, прочая вёрстка кароче !-->
</div>
<div>
<!-- Тут у нас типо блок отвечающий за вывод истории треков -->
<div>
<!-- Тут див отвечающий фильтр, в котором дату и время пользователь вводит-->
<form>
<p>Date: <input type="text" id="datepicker" name="date"></p>
<p>Time min: <input id="timepicker_min" type="text" class="input-small" name="timep_min"></p>
<p>Time max: <input id="timepicker_max" type="text" class="input-small" name="timep_max"></p>
<input type="submit">
</form>
<!-- Под формой располагаем блок вывода результата -->
<!-- Результат выводится с помощью php скрипта -->
<?php
// получаем параметры date, timep_min, timep_max в переменные
if ( переменные date, timep_min, timep_max определены ) {
// выполняем блок который генерит результат
} else {
// выводим сообщение что треков в этот период не было
}
?>
</div>
</div>
<!-- ну и надо определить 2 тайм пикера -->
<script type="text/javascript">
$('#timepicker_min').timepicker({
minuteStep: 1,
template: 'modal',
appendWidgetTo: 'body',
showSeconds: true,
showMeridian: false,
defaultTime: false
});
$('#timepicker_max').timepicker({
minuteStep: 1,
template: 'modal',
appendWidgetTo: 'body',
showSeconds: true,
showMeridian: false,
defaultTime: false
});
</script>
</body>
</html>

120
Александр @Aleksandr_Boyko
а у меня есть скрипт php который записывает треки вот он **********

120
Александр @Aleksandr_Boyko
features пишет:

Я не знаю php ^_^ Поэтому готовое решения не дам ^_^ В целом я с ним знаком, но практики программирования на нём у меня нет.
Ты привёл 2 страницы, тебе надо объединить их в одну.
Инфа по тегу form: **********

Параметр action ты можешь не указывать, тогда у тебя будет вызываться таже самая страница. Таким образом тебе надо в php сделать условие, что если к тебе не пришли параметры, то запрос к базе не делать.

У тебя должна получится страница вида:

<html>
<head>Тут сам знаешь что писать</head>
<body>
<div>
<!-- Тут допустим всякие хедеры, плееры и навигация, прочая вёрстка кароче !-->
</div>
<div>
<!-- Тут у нас типо блок отвечающий за вывод истории треков -->
<div>
<!-- Тут див отвечающий фильтр, в котором дату и время пользователь вводит-->
<form>
<p>Date: <input type="text" id="datepicker" name="date"></p>
<p>Time min: <input id="timepicker_min" type="text" class="input-small" name="timep_min"></p>
<p>Time max: <input id="timepicker_max" type="text" class="input-small" name="timep_max"></p>
<input type="submit">
</form>
<!-- Под формой располагаем блок вывода результата -->
<!-- Результат выводится с помощью php скрипта -->
<?php
// получаем параметры date, timep_min, timep_max в переменные
if ( переменные date, timep_min, timep_max определены ) {
// выполняем блок который генерит результат
} else {
// выводим сообщение что треков в этот период не было
}
?>
</div>
</div>
<!-- ну и надо определить 2 тайм пикера -->
<script type="text/javascript">
$('#timepicker_min').timepicker({
minuteStep: 1,
template: 'modal',
appendWidgetTo: 'body',
showSeconds: true,
showMeridian: false,
defaultTime: false
});
$('#timepicker_max').timepicker({
minuteStep: 1,
template: 'modal',
appendWidgetTo: 'body',
showSeconds: true,
showMeridian: false,
defaultTime: false
});
</script>
</body>
</html>


Может проще всего организовать поиск из этого файла??7http://brfmplayer.zz.mu/playlist.php

68
Алексей @features
А как вы собираетесь этот файл обрабатывать? Если у вас нет навыков работы с php, то придётся учиться. Само по себе оно не заработает так как вы хотите. Либо довольствоваться тем, что уже есть у вас.