- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Подскажите, пожалуйста. Надеюсь с разделом угадал.
Необходим следующий sql запрос через php файл:
Из таблицы, где есть строки
1) артист
2) песня
3) кол-во проголосовавших "ЗА" - $up
4) кол-во проголосовавших "Против" - $down
необходимо вытянуть все песни одного исполнителя, кроме одной песни, например ($song)
и вывести нумерованным списком. Сортировка списка должна быть по $rating, где $rating = $up - $down (другими словами - по популярности)
Кто разбирается в mysql, прошу помочь
SELECT *, (up-down) rating FROM music WHERE song!='$song' ORDER BY rating DESC
SELECT artist, song, up, down, (up-down) AS rating
FROM <имя таблицы>
WHERE artist = 'Киркоров' AND song <> 'Зайка моя'
ORDER BY rating
+ как отобразить
Насколько я понимаю, * массив всех строк из таблицы, а мне нужен массив только песен определенного исполнителя
It-mcp.ru добавил 05.04.2011 в 11:58
А как вывести нумерованным списком вида:
1) песня +15
2) песня +10
3) песня + 5
Насколько я понимаю, * массив всех строк из таблицы
Не строк, а столбцов:)
$query2 = "SELECT artist, title FROM `songlist` WHERE artist LIKE '$msg2'";
$update = mysql_query($query2);
if ($line = mysql_fetch_array($update, MYSQL_ASSOC)) {
printf ("ID: %s Name: %s", $line['artist'], $line['title']);
}
mysql_free_result($query2);
Выводит только один результат, хотя их несколько.
Такой код не выводит вообще ничего
$query2 = "SELECT artist, title, up, down, (up-down) AS rating FROM 'songlist' WHERE artist = '$msg2' ORDER BY rating";
$update = mysql_query($query2);
if ($line = mysql_fetch_array($update, MYSQL_ASSOC)) {
printf ("ID: %s Name: %s", $line['artist'], $line['title']);
}
mysql_free_result($query2);
$query2 = "SELECT artist, title FROM `songlist` WHERE artist LIKE '$msg2'";
$update = mysql_query($query2);
if ($line = mysql_fetch_array($update, MYSQL_ASSOC)) {
printf ("ID: %s Name: %s", $line['artist'], $line['title']);
}
mysql_free_result($query2);
Выводит только один результат, хотя их несколько.
Такой код не выводит вообще ничего
$query2 = "SELECT artist, title, up, down, (up-down) AS rating FROM 'songlist' WHERE artist = '$msg2' ORDER BY rating";
$update = mysql_query($query2);
if ($line = mysql_fetch_array($update, MYSQL_ASSOC)) {
printf ("ID: %s Name: %s", $line['artist'], $line['title']);
}
mysql_free_result($query2);
Вывод всех записей:
и выводить так не проще?
mion добавил 05.04.2011 в 13:06
В то, что у вас не выводит ничего, то попробуйте убрать кавычки в имени таблицы.
mion добавил 05.04.2011 в 13:07
Кавычки должны быть такие: ` (Клавиша ё)
mion добавил 05.04.2011 в 13:08
Вывод нумерованного списка:
mion добавил 05.04.2011 в 13:11
$query2 = "SELECT artist, title, up, down, (up-down) AS rating FROM 'songlist' WHERE artist = '$msg2' ORDER BY rating";
Попробуйте так (т.е. убрать кавычки с имени таблицы):
1) Спасибо Mion, в отдельности за кавычки. Даже и не догадывался.
2) Конечный вариант такой:
$query2 = "SELECT artist, title, up, down, (up-down) AS rating FROM `songlist` WHERE artist = '$msg2' ORDER BY rating DESC";
$update = mysql_query($query2);
while ($line = mysql_fetch_assoc($update)) {
echo "ID: ".$line['artist']." Name: ".$line['title']. " Up: ".$line['up']. " - Down: ".$line['down'];
echo "<br>";
}
Осталось только список пронумеровать и лимит в 10 записей.
1) Спасибо Mion, в отдельности за кавычки. Даже и не догадывался.
2) Конечный вариант такой:
$query2 = "SELECT artist, title, up, down, (up-down) AS rating FROM `songlist` WHERE artist = '$msg2' ORDER BY rating DESC";
$update = mysql_query($query2);
while ($line = mysql_fetch_assoc($update)) {
echo "ID: ".$line['artist']." Name: ".$line['title']. " Up: ".$line['up']. " - Down: ".$line['down'];
echo "<br>";
}
Осталось только список пронумеровать и лимит в 10 записей.
Вот нумерация и лимит на 10 записей.
Благодарю, чуть с кавычками поработал. и пошло.
P.s. странно, вроде же раньше кнопка "поблагодарить" была....
It-mcp.ru добавил 05.04.2011 в 13:35
Хм. а как же показывать сам рейтинг. Пробовал так -
$ups= line["up"];
$downs=line['down'];
$rating= $ups - $downs;
$i++;
echo $i."<a href=\"#\"> ".$line["artist"]." Name: ".$line["title"]."</a><br>".$rating;
Все вопрос решен.
Подскажите, пожалуйста. Есть код:
$query = "SELECT album FROM `songlist` WHERE artist = '$msg2' ";
$update = mysql_query($query);
$i = 0;
while ($line = mysql_fetch_array($update)) {
$line['album'] = array_unique($line['album']);
$i++;
echo $i.". ".$line['album']."</br>";
Но он не работает. Должен выводить списком:
1. Название Альбома
2. Название Альбома
3. Название Альбома
Причем не должны выводить одинаковы записи (альбомы)
В чем ошибся?