Перейти к содержимому



Постраничная навигация на готовом mp3 движке

#1 tiagamc

tiagamc
  • Пользователь
  • 22 сообщений
  • Репутация: -1
0

Отправлено 28 Июль 2012 - 15:20

значит так, есть сайт. точнее небольшой движек, на нем я загружаю песни прописывая назание песни и артиста, и после закачки, я нажимаю генерацию страниц, и автоматически появляется песня в алфавитном указателе и создаеться страница для закачки с информацией вот такая вот http://www.3xpro.ru/m3_lists/28.shtml ( это пример ) но сть проблема, при генерации страницы например на букву А на одной страници ПОЯВЛЯЮТЬСЯ ВСЕ ПЕСНИ, а хочеться выводить по сто на странице а потом сто на другой, как на всех сайтах т.е. << 1 2 3 4 5 6 ... 45 >> не получатеься исправить код, могоите радо бога, сколько мучаюсь не могу доделать.. УМОЛЯЮ просто о помощи.

Вот код генерации страницы ::::

function generate_lists($bukva){
function fsize($str_size){
if ($str_size != ""){
$str_size=(int)$str_size;
$mpd="./../m3_files/".get_dir($str_size)."/".$str_size.".mp3";
@$blya=(int)(@filesize($mpd)/1024);
@$blya=$blya/1024;
list($mb,$kb) = @explode(".",$blya);
@$kb = substr($kb, 0, 2);
if ($kb==""){$kb="00";}
@$blyxa=$mb.".".$kb." Mb";
return $blyxa;
}
}
global $bytes,$WWW, $LIST_DATA;
// Читаем шаблон
$fp = fopen ("./../template/list.html", "r");
$buffer = fread($fp, $bytes);
fclose ($fp);
if ($bukva != ""){$r=2;}else{$r=56;}
for ($i=1; $i<$r; $i++){
$LIST_DATA="";
$view=$i;
switch ($view) {
case 1: $view="1"; break;
case 2: $view="a"; break;
case 3: $view="b"; break;
case 4: $view="c"; break;
case 5: $view="d"; break;
case 6: $view="e"; break;
case 7: $view="f"; break;
case 8: $view="g"; break;
case 9: $view="h"; break;
case 10: $view="i"; break;
case 11: $view="j"; break;
case 12: $view="k"; break;
case 13: $view="l"; break;
case 14: $view="m"; break;
case 15: $view="n"; break;
case 16: $view="o"; break;
case 17: $view="p"; break;
case 18: $view="q"; break;
case 19: $view="r"; break;
case 20: $view="s"; break;
case 21: $view="t"; break;
case 22: $view="u"; break;
case 23: $view="v"; break;
case 24: $view="w"; break;
case 25: $view="x"; break;
case 26: $view="y"; break;
case 27: $view="z"; break;
case 28: $view="а"; break;
case 29: $view="б"; break;
case 30: $view="в"; break;
case 31: $view="г"; break;
case 32: $view="д"; break;
case 33: $view="е"; break;
case 34: $view="ж"; break;
case 35: $view="з"; break;
case 36: $view="и"; break;
case 37: $view="к"; break;
case 38: $view="л"; break;
case 39: $view="м"; break;
case 40: $view="н"; break;
case 41: $view="о"; break;
case 42: $view="п"; break;
case 43: $view="р"; break;
case 44: $view="с"; break;
case 45: $view="т"; break;
case 46: $view="у"; break;
case 47: $view="ф"; break;
case 48: $view="х"; break;
case 49: $view="ц"; break;
case 50: $view="ш"; break;
case 51: $view="щ"; break;
case 52: $view="э"; break;
case 53: $view="ю"; break;
case 54: $view="я"; break;
case 55: $view="ч"; break;
}
if ($bukva != ""){$view=strtolower($bukva);}

// SELECT * FROM m3_mp3 WHERE artist LIKE 'a%';

if ($view == "1"){
$leet = mysql_query("SELECT * FROM `m3_mp3` WHERE (SUBSTRING(LCASE(`artist`),1,1) = '1' OR SUBSTRING(LCASE(`artist`),1,1) = '2' OR SUBSTRING(LCASE(`artist`),1,1) = '3' OR SUBSTRING(LCASE(`artist`),1,1) = '4' OR SUBSTRING(LCASE(`artist`),1,1) = '5' OR SUBSTRING(LCASE(`artist`),1,1) = '6' OR SUBSTRING(LCASE(`artist`),1,1) = '7' OR SUBSTRING(LCASE(`artist`),1,1) = '8' OR SUBSTRING(LCASE(`artist`),1,1) = '9' OR SUBSTRING(LCASE(`artist`),1,1) = '0') AND `active` = '1' ORDER BY `artist` ASC;");
}else{
$leet = mysql_query("SELECT * FROM `m3_mp3` WHERE (SUBSTRING(LCASE(`artist`),1,1) = '".$view."') AND `active` = '1' ORDER BY `artist` ASC;");
}
$zh=0;
while ($row = mysql_fetch_array($leet, MYSQL_ASSOC))
{



$zh=$zh+1;
$w_id=$row['id'];
$w_artist=unsafe_str($row['artist']);
$w_track=unsafe_str($row['track']);
$w_size=$row['size'];
$w_uploader=$row['uploader'];
$w_date=$row['date'];
$p_id=$row['id'];
$p_size=fsize($row['id']);
@$id3 = new id3("./../m3_files/".get_dir($p_id)."/".$p_id.".mp3");
@$id_bitrate=$id3->bitrate();


$v_link=$WWW."pages/".get_dir($w_id)."/".$w_id.".shtml";



$LIST_DATA.="<table width="100%" border="0" cellspacing="1">
<tr>
<td height="90%"><img src="./../fon/p.png" align="absmiddle"/> <a href="".$v_link."" >".$w_artist." - ".$w_track."</a></td>
<td width="10%"> [<font color="#660000"> ".$id_bitrate." Kb/s </font>] </td>
<td width="10%"> [<font color="#660000"> ".$w_size." </font>] </td>
<td width="10%">[<font color="#660000"> ".$w_date." </font>]</td>

</tr>
</table>";

}




$to_file=tag2html($buffer,"/");
$fp = fopen ("./../m3_lists/".$i.".shtml", "w+");
fwrite ($fp, $to_file);
fclose ($fp);
mysql_free_result($leet);
}

}

Спасибо тем кто откликнеться на мою второмесячную проблему!!!!!!!!!!!!

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Пагинация в Joomla. Проблемы.
  2. Правильная оптимизация постраничной навигации
  3. Вопрос о пагинации
  4. Готовый движок сайта или самописный?

#2 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 28 Июль 2012 - 15:27

а кто откликнется на мою трехлетнюю проблему о том, что код надо правильно оформлять!!! -_-
  • 0

#3 c0ns0l3

c0ns0l3
  • Пользователь
  • 264 сообщений
  • Репутация: 49

Отправлено 31 Июль 2012 - 06:18

Лимит в mysql?
array_slice всего того, что ты прочитал из базы данных?
  • 0

#4 tiagamc

tiagamc
    Topic Starter
  • Пользователь
  • 22 сообщений
  • Репутация: -1

Отправлено 02 Август 2012 - 17:23

Пользователи

18 сообщений
0
здравствуйте уважаемые веб мастера.
Приношу свои извинения, что влазию с бестолковой просьбой.... но...лето ближеться к концу, а у меня не готовая летняя практика.... дело вот в чем, мы составляем сайт из готового музыкального движка, вот это мой домен www.3xpro.ru ( я третий в журнале ) ппыхтел немного, вроде чет выходит, но я не могу написать постраничную навигацию... тоесть....
я прописываю название песни и исполнителч и загружаю на сервер, все это появляеться в базе данных и выводиться список на "а" так же на "б" и т.д.
но песни выводяться например на "А" сколько не есть все на одной странице, спасибо одному человеку, он исправил мне код и теперь есть лимит. на странице ( http://www.3xpro.ru/m3_lists/28.shtml ) на вывод 100 песен, но вот проблема ..... БЕДА..... как показать остальные песни ????????????7 их сейчас примерно 120 даже 150 а на странице выводиться только сто....значит надо зделать навигацию... но как???? как бы не впихивал не получаеться, либо выводиться на странице где я генерирую все странице ( да, забыл....Скрипт от ВОЛКОВ НЕТ! жалкая подобие зайцев нет. )
ребята помогите, не знаю что делать....всю голову словал.... может надо что-то прописать в config.php//


вот код, который генерирует страницу со списками песен по буквам.
function generate_lists($bukva){
function fsize($str_size){
if ($str_size != ""){
$str_size=(int)$str_size;
$mpd="./../m3_files/".get_dir($str_size)."/".$str_size.".mp3";
@$blya=(int)(@filesize($mpd)/1024);
@$blya=$blya/1024;
list($mb,$kb) = @explode(".",$blya);
@$kb = substr($kb, 0, 2);
if ($kb==""){$kb="00";}
@$blyxa=$mb.".".$kb." Mb";
return $blyxa;
}
}
global $bytes,$WWW, $LIST_DATA;
// Читаем шаблон
$fp = fopen ("./../template/list.html", "r");
$buffer = fread($fp, $bytes);
fclose ($fp);
if ($bukva != ""){$r=2;}else{$r=56;}
for ($i=0; $i<$r; $i++){
// значение $LIST_DATA, это то что появляеться в шаблоне поэтому и в ковычках, тут должна быть верхняя ПОСТРАНИЧНАЯ НАВИГАЦИЯ
$LIST_DATA="";
$view=$i;
switch ($view) {
case 1: $view="1"; break;
case 2: $view="a"; break;
case 3: $view="b"; break;
case 4: $view="c"; break;
case 5: $view="d"; break;
case 6: $view="e"; break;
case 7: $view="f"; break;
case 8: $view="g"; break;
case 9: $view="h"; break;
case 10: $view="i"; break;
case 11: $view="j"; break;
case 12: $view="k"; break;
case 13: $view="l"; break;
case 14: $view="m"; break;
case 15: $view="n"; break;
case 16: $view="o"; break;
case 17: $view="p"; break;
case 18: $view="q"; break;
case 19: $view="r"; break;
case 20: $view="s"; break;
case 21: $view="t"; break;
case 22: $view="u"; break;
case 23: $view="v"; break;
case 24: $view="w"; break;
case 25: $view="x"; break;
case 26: $view="y"; break;
case 27: $view="z"; break;
case 28: $view="а"; break;
case 29: $view="б"; break;
case 30: $view="в"; break;
case 31: $view="г"; break;
case 32: $view="д"; break;
case 33: $view="е"; break;
case 34: $view="ж"; break;
case 35: $view="з"; break;
case 36: $view="и"; break;
case 37: $view="к"; break;
case 38: $view="л"; break;
case 39: $view="м"; break;
case 40: $view="н"; break;
case 41: $view="о"; break;
case 42: $view="п"; break;
case 43: $view="р"; break;
case 44: $view="с"; break;
case 45: $view="т"; break;
case 46: $view="у"; break;
case 47: $view="ф"; break;
case 48: $view="х"; break;
case 49: $view="ц"; break;
case 50: $view="ш"; break;
case 51: $view="щ"; break;
case 52: $view="э"; break;
case 53: $view="ю"; break;
case 54: $view="я"; break;
case 55: $view="ч"; break;
}
if ($bukva != ""){$view=strtolower($bukva);}
// формируем лимит на вывод
$limit='';
$count_strings=100; // Кол-во строк на странице
if(isset($_GET['from'])){
$from = $_GET['from'];
$limit=$from.",".$count_strings;
}else{
$from=0;
$limit=$from.",".$count_strings;
}
// SELECT * FROM m3_mp3 WHERE artist LIKE 'a%';
if ($view == "1"){
$leet = mysql_query("SELECT * FROM `m3_mp3` WHERE (SUBSTRING(LCASE(`artist`),1,1) = '1' OR SUBSTRING(LCASE(`artist`),1,1) = '2' OR SUBSTRING(LCASE(`artist`),1,1) = '3' OR SUBSTRING(LCASE(`artist`),1,1) = '4' OR SUBSTRING(LCASE(`artist`),1,1) = '5' OR SUBSTRING(LCASE(`artist`),1,1) = '6' OR SUBSTRING(LCASE(`artist`),1,1) = '7' OR SUBSTRING(LCASE(`artist`),1,1) = '8' OR SUBSTRING(LCASE(`artist`),1,1) = '9' OR SUBSTRING(LCASE(`artist`),1,1) = '0') AND `active` = '1' ORDER BY `artist` ASC LIMIT $limit;");
}else{
$leet = mysql_query("SELECT * FROM `m3_mp3` WHERE (SUBSTRING(LCASE(`artist`),1,1) = '".$view."') AND `active` = '1' ORDER BY `artist` ASC LIMIT $limit;");
}
$zh=1;
while ($row = mysql_fetch_array($leet, MYSQL_ASSOC))
{
$zh=$zh+1;
$w_id=$row['id'];
$w_artist=unsafe_str($row['artist']);
$w_track=unsafe_str($row['track']);
$w_size=$row['size'];
$w_uploader=$row['uploader'];
$w_date=$row['date'];
$p_id=$row['id'];
$p_size=fsize($row['id']);
@$id3 = new id3("./../m3_files/".get_dir($p_id)."/".$p_id.".mp3");
@$id_bitrate=$id3->bitrate();
$v_link=$WWW."pages/".get_dir($w_id)."/".$w_id.".shtml";
// значение $LIST_DATA, это то что появляеться в шаблоне поэтому и в ковычках, и в виде таблице.
$LIST_DATA.="<table width="100%" border="0" cellspacing="1">
<tr>
<td height="90%"><img src="./../fon/p.png" align="absmiddle"/> <a href="".$v_link."" >".$w_artist." - ".$w_track."</a></td>
<td width="10%"> [<font color="#660000"> ".$id_bitrate." Kb/s </font>] </td>
<td width="10%"> [<font color="#660000"> ".$w_size." </font>] </td>
<td width="10%">[<font color="#660000"> ".$w_date." </font>]</td>
<td width="10%">[<font color="#660000">	
				 </font>]</td>
</tr>
</table>";
}
// читаем какой шаблон приводить в исполнение
$to_file=tag2html($buffer,"/");
$fp = fopen ("./../m3_lists/".$i.".shtml", "w+");
fwrite ($fp, $to_file);
fclose ($fp);
mysql_free_result($leet);
}
}

  • 0

#5 c0ns0l3

c0ns0l3
  • Пользователь
  • 264 сообщений
  • Репутация: 49

Отправлено 09 Август 2012 - 22:43

// формируем лимит на вывод
$limit='';
$count_strings=100; // Кол-во строк на странице
if(isset($_GET['from'])){
$from = $_GET['from'];
$limit=$from.",".$count_strings;
}else{
$from=0;
$limit=$from.",".$count_strings;
}


Он у тебя уже готов почти. Тебе осталось только передавать переменную from в гет запросе. Как ее "правильно" сгенерировать? Теб енужно узнать всего-то сколько всего записей есть, разделить на твой count_string(100) и округлить до целого, таким самым ты узнаешь количество страниц по 100 записей. После чего ты будешь подставлять их в нужном значении.
Узнать количество записей SELECT COUNT(*) FROM m3_mp3 WHERE artist LIKE 'a%'
Это первый вариант, не особо меняя твой код.
Второй вариант: ты делаешь запрос на весь список, без лимита в запросе. После чего ты сможешь играться уже с массивом данных ответа БД с той же механикой.
  • 1


Оформление форума – IPBSkins.ru