Я совсем новичок в PHP, поэтому не судите строго. Так вот вопрос вот в чем: я создаю сайт-сборник песен с аккордами и т.п. Допустим у меня на странице список исполнителей их порядка 50 на одной странице!!! Так вот как мне сделать так,чтобы скрипт сам размещал на странице допустим по 10 исполнителей! Напишите поподробнее пожалуйста код и структуру фалов??? Спасибо ОГРОМНОЕ!!!
Самое оптимальное и быстрое - хранить имена песен в базе данных (или текстовом файле, если база недоступна). В противном случае надо каждый раз перебирать все файлы, чтобы получить полный их список, а потом уже разграничивать на десятке и выводить в соответствие с идентификатором. Вы подробнее опишите, какой вариант Вас интересует, тогда и поможем. Но выбирайте оптимальный...
Тоесть тебе нужно что бы на одной станице было 10 исполнителей, а если их больше то переносились на след. страницы? Постраничная навигация?
Ну допустим что у меня имена сохранены в Pesni.txt: 1 аааааааа 2 сссссссссс 3 мммммммммммм ............................ 50......................... А как мне все это реализовать??? Какой код и куда вставлять????
Я согласен с Kreker. Лучше хранить все в базе данных, так все намного проще. Если же использовать базу, то можеш почитать здесь: http://www.tigercms.com/reads/274.php Тут все доступно написано и прокоментировано.
greenzlat PHP: <?php $songs = file("Pesni.txt"); //Берем содержимое файла в массив $size = sizeof($songs); //Считаем кол-во песен (если их разное кол-во, иначе можно присвоить значение 50) $page = (isset($_GET["page"])) ? (int)$_GET["page"] : 1; // тут при присвоении текущего номера страницы выясняем, передается ли в строке запроса (браузера) номер страницы. Если передается, то его берем, при этом переводя в число (чтобы не взломали, подставив текст). Если номер страницы не передается, то присваивается 1. $pages = ceil($size/10); //Выясняем кол-во страниц по 10 песен и округляем в большую сторону if ($page <= $pages) { //если текущая страница попадает в диапазон песен for ($i = ($page-1)*10; $i < $page*10; $i++) { //делаем перебор от 0-9 или 10-19 итд в зависимости от текущей страницы echo $songs[$i] . "<br>"; } } ?> Постарайся понять каждую строчку. Ссылки на другие страницы постарайся написать сам. Все функции можно поискать здесь: http://ru2.php.net/manual/ru/ref.filesystem.php
greenzlat, раз нет желания учить PHP, делай статичный HTML сайт и сам ручками добавляй песни и разбивай по страницам.
Заработало почти!! На страницу из файла вывел по 10 строк, но почему то внизу нет ссылок на 2,3,4,5 и т.д. ссылок!!! И подскажите пожалуйста как сделать чтобы эти названия имели ссылки на соответствующий текст песни??? Спасибо за понимание!!!
как выводить второй десяток и дальше я разобрался!! А как сделать ссылки на каждый номер страницы???? 1 2 3 4 5 6 ... и т.д.
Думайте логически. Вы же программистом, вроде бы, хотите стать. В свое время я тоже на это потратил несколько часов расчетов на бумаге. Хотя теперь знаю, что это максимум с кодом займет 5 минут.
Разобрался я с этими ссылками!!! Спасибо большое за помощь!!! Но теперь у меня возникает такой вопрос: Сайт написан на php. Страницы формируются с помощью скриптов php и файлов .txt Будут ли они проиндексированю в поисковой??? Например у меня есть ссылка index.php?a=a по сути у меня же ее нет на сервере, она создается с помощью скрипта, следовательно и посетители не смогут ее найти через поисковую??? Как мне быть?? Хотелось бы послушать мнения профи!
А почему так??? Код моей страницы, где размещен код php: Код (Text): <head> <title>111111111</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <link rel="stylesheet" href="mm_spa.css" type="text/css" /> <meta name="description" content=""> <meta name="keywords" content=""> </head> <body bgcolor="#D2892D"> <table width="991" border="0" cellpadding="0" cellspacing="0" background="images/fon.gif"> <tr> <td height="167" colspan="5" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FEBB6C"> <tr> <td height="60" colspan="2" valign="top"><img src="images/1_01.jpg" width="361" height="60" border="0"></td> <td width="449" valign="top"><img src="images/1_02.jpg" width="449" height="60"></td> <td width="190" rowspan="3" valign="top" bgcolor="#FBBD6A"><img src="images/1_03.jpg" width="190" height="151"></td> </tr> <tr> <td height="91" colspan="2" valign="top" bgcolor="#FEBC68"><img src="images/1_04.jpg" width="361" height="91" border="0" usemap="#Map"></td> <td rowspan="2" valign="top" bgcolor="#FEBB6C"><img src="images/1_05.jpg" width="449" height="91"></td> </tr> <tr> <td width="73" height="16"></td> <td width="288" valign="top" bgcolor="#FDBC6A"><img src="images/123.gif" width="176" height="16"></td> </tr> </table></td> </tr> <tr> <td width="73" height="28"> </td> <td width="176" rowspan="2" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#f89f2f"> <!--DWLayoutTable--> <tr> <td width="176" height="69"> </td> </tr> </table></td> <td width="61"> </td> <td width="500"> </td> <td width="190"> </td> </tr> <tr> <td height="41"> </td> <td> </td> <td rowspan="2" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="500" height="179" valign="top"> <p> [b]<?php $messcount=10; $file_array=file("isplon.txt"); $lines=count($file_array); if($lines%10) $pages=$lines/$messcount+1; else $pages=$lines/10; if($page==0||$page<0) { $page=2; } $from=$lines-($page*$messcount-1); $to=$lines-(($page-1)*$messcount); if($from<0) { $from=2; } $line="Страницы : |"; for ($link=1;$link<=$pages;$link++) { if ($link!=$page) { $line.="<a href=index.php?page=$link> $link </a> "; } if ($link==$page) { $line.="<b> $link </b>"; } } print "$line |<br>"; for($i=$to-1;$i>=$from-1;$i--) { print "$file_array[$i]<br>"; } ?>[/b] </p> <p><a href="index.html"></a></p></td> </tr> </table> </td> <td> </td> </tr> <tr> <td height="138"> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td height="333"> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> </table> <a href="index.html"> <map name="Map"> <area shape="rect" coords="28,3,366,84" href="index.html"> </map> </a> </body> </html> Когда загружаю index.php выдает такую ошибку: Notice: Undefined variable: page in z:\home\test2.ru\www\index.php on line 77 [Денвер: показать возможную причину ошибки]Страницы : | 1 2 3 4 | И дальше идет список из моего .txt. А когда нажимаю на ссылку номера страницы (например: 1, то уже эта ошибка не появляется!!!???? Что сделать??? Спасибо!!!
Это переводится - "переменная не определена", что в свою очередь обозначает то, что вы несуществующую переменную (до ее объявления) где-то использовали и к ней обращались, пытаясь выведать какие-то о ней подробности (например, пустоту). Вот пример обращения к несуществующей переменной: PHP: <?php if ($variable == '') { echo "Нет такого"; } $variable = 1; .... //или echo $_POST["text"]; //будет выдавать ошибку при загрузке скрипта, но если пользователь отправит текст из формы, ошибки не будет. ?> Чтобы проверять существование переменной используйте функцию isset
Т.е. мне ее необходимо объявить сначала перед моим скриптом: Код (Text): <?php $messcount=10; $file_array=file("isplon.txt"); $lines=count($file_array); if($lines%10) $pages=$lines/$messcount+1; else $pages=$lines/10; if($page==0||$page<0) { $page=1; } $from=$lines-($page*$messcount-1); $to=$lines-(($page-1)*$messcount); if($from<0) { $from=1; } $line="Страницы : |"; for ($link=1;$link<=$pages;$link++) { if ($link!=$page) { $line.="<a href=index.php?page=$link> $link </a> "; } if ($link==$page) { $line.="<b> $link </b>"; } } print "$line |<br>"; for($i=$to-1;$i>=$from-1;$i--) { print "$file_array[$i]<br>"; } ?> ??????????
Все сделал!! Спасибо!!! Но проблема теперь в следующем: У меня на странице верхняя часть и меню слева вставляются из файлов с помощью функции: Код (Text): <?php include "menu.php" ?> Так проблема в том, что если файл куда вставляются menu.php находится не в корневом каталоге, а скажем в /ispoln/m.php рисунки файла menu.php не загружаются и пропадает CSS стиль этого файла, хотя он прописан в menu.php!!![/code]
Это очень логично. Смотри HTML код в браузере. Раз указываеш относительный путь, картинки и стили ищутся относительно файла PHP. Хочеш универсальности - указывай полный путь http://site.com/image.jpg, а не просто image.jpg. Ссылки ты всё равно не будеш читать, посему давать не буду.
Дак у меня итак прописано: Код (Text): <img src="images/1_01.jpg" Каталог images находится в корне!!!