Здравствуйте. Появилась необходимость сделать постраничный вывод материалов на сайте. Изначально материалы сайта, без обращения к БД, имели такую структуру: HTML: <div id="page"> <div id="page-bgtop"> <div id="content"> <div class="post"> <p class="meta"><span class="date">Sunday, April 26, 2009</span> 7:27 AM Posted by <a href="#">Someone</a></p> <h2 class="title"><a href="#">Welcome to Predilection </a></h2> <div class="entry"> <p>This is <strong>Predilection </strong>, a free, fully standards-compliant CSS template designed by <a href="http://www.freecsstemplates.org/">Free CSS Templates</a>, released for free under the <a href="http://creativecommons.org/licenses/by/2.5/">Creative Commons Attribution 2.5</a> license. You're free to use this template for anything as long as you link back to <a href="http://www.freecsstemplates.org/">my site</a>. Enjoy :)</p> <p>Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum ipsum. Proin imperdiet est. Phasellus dapibus semper urna. Pellentesque ornare, orci in felis. </p> </div> </div> <div class="post"> <p class="meta"><span class="date">Sunday, April 26, 2009</span> 7:27 AM Posted by <a href="#">Someone</a></p> <h2 class="title"><a href="#">Welcome to Predilection </a></h2> <div class="entry"> <p>This is <strong>Predilection </strong>, a free, fully standards-compliant CSS template designed by <a href="http://www.freecsstemplates.org/">Free CSS Templates</a>, released for free under the <a href="http://creativecommons.org/licenses/by/2.5/">Creative Commons Attribution 2.5</a> license. You're free to use this template for anything as long as you link back to <a href="http://www.freecsstemplates.org/">my site</a>. Enjoy :)</p> <p>Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum ipsum. Proin imperdiet est. Phasellus dapibus semper urna. Pellentesque ornare, orci in felis. </p> </div> </div> <div class="post"> <p class="meta"><span class="date">Sunday, April 26, 2009</span> 7:27 AM Posted by <a href="#">Someone</a></p> <h2 class="title"><a href="#">Welcome to Predilection </a></h2> <div class="entry"> <p>This is <strong>Predilection </strong>, a free, fully standards-compliant CSS template designed by <a href="http://www.freecsstemplates.org/">Free CSS Templates</a>, released for free under the <a href="http://creativecommons.org/licenses/by/2.5/">Creative Commons Attribution 2.5</a> license. You're free to use this template for anything as long as you link back to <a href="http://www.freecsstemplates.org/">my site</a>. Enjoy :)</p> <p>Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum ipsum. Proin imperdiet est. Phasellus dapibus semper urna. Pellentesque ornare, orci in felis. </p> </div> </div> <div class="post"> <p class="meta"><span class="date">Sunday, April 26, 2009</span> 7:27 AM Posted by <a href="#">Someone</a></p> <h2 class="title"><a href="#">Lorem ipsum sed aliquam</a></h2> <div class="entry"> <p>Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec consectetuer. Donec ipsum. Proin imperdiet est. Phasellus <a href="#">dapibus semper urna</a>. Pellentesque ornare, orci in consectetuer hendrerit, urna elit eleifend nunc, ut consectetuer nisl felis ac diam. Etiam non felis. Donec ut ante. In id eros.</p> </div> </div> <div class="post"> <p class="meta"><span class="date">Sunday, April 26, 2009</span> 7:27 AM Posted by <a href="#">Someone</a></p> <h2 class="title"><a href="#">Lorem ipsum sed aliquam</a></h2> <div class="entry"> <p>Mauris vitae nisl nec metus placerat consectetuer. Donec ipsum. Proin imperdiet est. Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec metus placerat consectetuer. Donec ipsum. Proin imperdiet est. Phasellus <a href="#">dapibus semper urna</a>. Pellentesque ornare, orci in consectetuer hendrerit, urna elit eleifend nunc, ut consectetuer nisl felis ac diam. </p> </div> </div> </div> Я, используя пример, написал вот такой вот постраничный вывод с обращением к БД: PHP: <?php // Данные для mysql сервера $dbhost = "localhost"; // Хост $dbuser = "root"; // Имя пользователя $dbname = "copyright"; // Имя базы данных // Подключаемся к mysql серверу $link = mysql_connect($dbhost, $dbuser); //Указываем кодировку для подключения к базе mysql_set_charset("utf8"); // Выбираем нашу базу данных mysql_select_db($dbname, $link); //Количество записей на странице $quantity=5; //Количество ссылок перед текущей и после текущей страницы $limit=3; $page = 0; if(!is_numeric($page)) $page=1; if ($page<1) $page=1; $result2 = mysql_query("SELECT * FROM article;"); $num = mysql_num_rows($result2); $pages = $num/$quantity; $pages = ceil($pages); $pages++; if ($page>$pages) $page = 1; //echo '<strong style="color: #df0000">Страница № ' . $page . //'</strong><br /><br />'; if (!isset($list)) $list=0; $list=--$page*$quantity; $result = mysql_query("SELECT * FROM article LIMIT $quantity OFFSET $list;"); $num_result = mysql_num_rows($result); echo"<div id='page'> <div id='page-bgtop'> <div id='content'>"; for ($i = 0; $i<$num_result; $i++) { $row = mysql_fetch_array($result); echo"<div class='post'> <p class='meta'> <span class='date'> Добавлено: ".$row["date"]. "</span> <a href='#'> Пользователем:".$row["avtor"]. "</a> </p> <h2 class='title'> <a href='#'>".$row["title"]." </a> </h2> <div class='entry'>". $row["text"]. "</div> </div> ";} echo " </div> </div> </div>"; ?> Данные он выводит, только после этого слетел дизайн сайта, а я собственноручно никак не могу найти ошибку.
PHP: $result2 = mysql_query("SELECT * FROM article;"); $num = mysql_num_rows($result2); // Преващаются в $result2 = mysql_query("SELECT COUNT(*) FROM article;"); $num = mysql_fetch_array($result2)[0]; // И больше мы не выгружаем данные и заботливо считаем на стороне mysql --- Добавлено --- Зачем for если можно обойтись while ? И конечно же устаревшее расширение mysql. Используйте PDO или в крайнем случае mysqli.
А разница между for и while? Результат получается тот же, вроде. Про уход от mysql знаю, но пока я и в этом почти полный ноль, поэтому решил попрактиковаться на том, что проще.
Вообще люди используют дрель с режимом перфоратора, чтобы пробурить дырку в бетоне, но можно поковыряться отверткой )
Ты сравни HTML который был когда всё работало и тот код, что генерируешь на PHP. Смотри результат, в браузере правой кнопкой мыши по страничке и там есть пункт посмотреть исходный код, не элемент, а исходный код.
Кто хоть раз держал в руках перфоратор ни когда не возьмёт "дрель с режимом перфоратора". Сори за офтопик. p.s. фреймворки рулят
Зачем себя так насиловать? Там сразу бы объяснили, что если что-то перестало работать, то надо сравнить результат.
Потому что это диплом. Я все время писал на C# и сейчас веду несколько проектов на этом языке, но преподам захотелось разнообразия, поэтому пришлось браться за сайт. Так что был бы очень благодарен, если бы вы посмотрели что у меня не так)
В том то и дело, что только ты можешь сравнить HTML код который генерировал на PHP и тот HTML который работает. Мы же не видим всю картину. Книгу можно за 1-2 дня прочитать, там страниц под тысячу обычно, а если ты уже писал на C# то и поймёшь всё. Так что отладкой занимайся.
Проблема решена. Как оказалось, я потерял строчку HTML: <div style="clear: both;"> </div> Поэтому весь шаблон и слетел.