Zion-i2: Всем привет! Есть сайт радио онлайн, меня постоянно смущал 1 момент, нельзя гулять по сайту слушая музыку. Для этого нужно держать отдельную вкладку, а как сделать чтобы как вконтакте музыка не сбивалась при переходе на другие страницы? Подскажите что это хоть за технология и в какую сторону рыть?
ВК использует Ajax, реально страница не перезагружается. А флеш-элемент, который воспроизводит музыку, просто остается на странице. При нажатии F5 страница обновляется полностью, флеш-элемент удаляется, музыка прекращается.
Zion-i2: То есть, он выводит данные по дате, где самая свежая запись будет на первом месте, менее свежая на втором и тд по аналогии. А как мне сделать так, чтобы первые 4 самые свежие записи игнорировались, то есть выводить также по дате но начиная с 5 записи. Спасибо!
Возможно, так:
$start = $start + 5; $result = mysql_query("SELECT * FROM post ORDER BY date DESC LIMIT $start, $num",$db);
postavkin: А вместо номеров можно буквы - т.е. слова?
Если у вас будут отдельные файлы для каждого каталога и каждой страницы, то могут быть хоть буквы, хоть слова, хоть цифры.
Но, насколько мне известно, поисковики учитывают ключевые слова в УРЛ, таким образом по запросу со словами "красная" и "плитка" ссылка site.ru/catalog/plitka/red.php будет релевантней, чем site.ru/catalog/12/3.php.
В том случае, если вы планируете осваивать PHP, то лучше конечно же разобраться в этом сразу, потому как создавать отдельные файлы для каждого каталога и каждой страницы - самый простой, но не самый оптимальный путь.
Теперь все запросы вида site.ru/catalog/<число>/<число>.html будут идти в скрипт catalog.php .
2. В файле catalog.php сделать следующее:
а. Создать константу, содержащую необходимое число позиций на одной странице: define( 'CATALOG_POSITIONS' , 20)
б. Проверить GET переменные на правильность
в. Сделать запрос к БД
"SELECT * FROM catalog_table WHERE catalog = ".$_GET['catalog']." ORDER BY 'id' LIMIT ".(($_GET['part']-1)*CATALOG_POSITIONS).",".CATALOG_POSITIONS
г. Проверить количество найденных строк
Если их ноль, то выдаем ошибку 404
header("HTTP/1.1 404 Not Found");
И завершаем скрипт(если необходимо)
die();
Если строк больше нуля, то идем дальше
д. Выводите найденные строки на страницу
е. Делаете запрос:
"SELECT count(*) AS count FROM catalog_table WHERE catalog = ".$_GET['catalog']
Если count меньше или равна CATALOG_POSITIONS(т.е. 20), то смысла делать ссылки нету(т.к. в каталоге всего одна страница).
Если count больше CATALOG_POSITIONS, то необходимо вычислить количество страниц у каталога.
ё. Вычисляем количество страниц:
$count - количество страниц в каталоге(не забудьте создать переменную)
$catalog_pages = ceil($count/CATALOG_POSITIONS);
ceil - это округление до большего. Если, например, $count равен 125 и CATALOG_POSITIONS равен 20, то $catalog_pages будет равен 7 (6 страниц по 20 позиций и одна с 5-тью позициями)
ж. На основании $catalog_pages создайте ссылки на другие страницы каталога:
Всем привет! Есть сайт радио онлайн, меня постоянно смущал 1 момент, нельзя гулять по сайту слушая музыку. Для этого нужно держать отдельную вкладку, а как сделать чтобы как вконтакте музыка не сбивалась при переходе на другие страницы? Подскажите что это хоть за технология и в какую сторону рыть?
ВК использует Ajax, реально страница не перезагружается. А флеш-элемент, который воспроизводит музыку, просто остается на странице. При нажатии F5 страница обновляется полностью, флеш-элемент удаляется, музыка прекращается.
То есть, он выводит данные по дате, где самая свежая запись будет на первом месте, менее свежая на втором и тд по аналогии. А как мне сделать так, чтобы первые 4 самые свежие записи игнорировались, то есть выводить также по дате но начиная с 5 записи. Спасибо!
Возможно, так:
$result = mysql_query("SELECT * FROM post ORDER BY date DESC LIMIT $start, $num",$db);
А вместо номеров можно буквы - т.е. слова?
Если у вас будут отдельные файлы для каждого каталога и каждой страницы, то могут быть хоть буквы, хоть слова, хоть цифры.
Но, насколько мне известно, поисковики учитывают ключевые слова в УРЛ, таким образом по запросу со словами "красная" и "плитка" ссылка site.ru/catalog/plitka/red.php будет релевантней, чем site.ru/catalog/12/3.php.
В том случае, если вы планируете осваивать PHP, то лучше конечно же разобраться в этом сразу, потому как создавать отдельные файлы для каждого каталога и каждой страницы - самый простой, но не самый оптимальный путь.
Попробуйте так:
1. В .htaccess прописать:
RewriteEngine on
RewriteRule ^/catalog/([0-9]{1,})/([0-9]{1,})\.html catalog.php?catalog=$1&part=$2
Теперь все запросы вида site.ru/catalog/<число>/<число>.html будут идти в скрипт catalog.php .
2. В файле catalog.php сделать следующее:
а. Создать константу, содержащую необходимое число позиций на одной странице: define( 'CATALOG_POSITIONS' , 20)
б. Проверить GET переменные на правильность
в. Сделать запрос к БД
г. Проверить количество найденных строк
Если их ноль, то выдаем ошибку 404
И завершаем скрипт(если необходимо)
Если строк больше нуля, то идем дальше
д. Выводите найденные строки на страницу
е. Делаете запрос:
Если count меньше или равна CATALOG_POSITIONS(т.е. 20), то смысла делать ссылки нету(т.к. в каталоге всего одна страница).
Если count больше CATALOG_POSITIONS, то необходимо вычислить количество страниц у каталога.
ё. Вычисляем количество страниц:
$count - количество страниц в каталоге(не забудьте создать переменную)
ceil - это округление до большего. Если, например, $count равен 125 и CATALOG_POSITIONS равен 20, то $catalog_pages будет равен 7 (6 страниц по 20 позиций и одна с 5-тью позициями)
ж. На основании $catalog_pages создайте ссылки на другие страницы каталога:
Если не наделать ошибок, то поисковики это должны без проблем обработать и проиндексировать.
Не забывайте про безопасность при написании скрипта!