2012-02-02 4 views
1

Я создаю сайт, на котором будут представлены статьи, перечисленные на странице (с их контентом). Подумайте о стиле блога. Тем не менее, я думаю, что 50 статей, полностью отображаемых на одной странице, будут немного смешными, так что мне интересно, как наилучшим образом разделить его на страницы автоматически.Лучший способ создания страничного интерфейса

Я извлекаю статьи из базы данных с помощью PHP и MySQL.

+2

Лучше всего немного неоднозначным. Если вы имеете в виду что-то конкретное, пожалуйста, уточните. – Ktash

+0

На самом деле я искал любой путь. Я не знаю, с чего начать. – muttley91

+0

Капля в CMS попробуйте Wordpress, она популярна и имеет большую поддержку в сообществе. – Relic

ответ

2

несколько предложений, которые могут быть скомбинированы с другими вещами.

  1. Запрос на Х количество статей. В нижней части страницы есть ссылка, чтобы перейти к следующему номеру X, который запрашивает X количество статей, начиная с последней отображаемой статьи. Точный код будет зависеть от того, как вы организуете вещи, но по сути просто назовите X-статьи содержанием 1 страницы, а затем дайте динамической странице значение, которое дает ему смещение для начала.
  2. Особенно приятно, если у вас есть длинные статьи, используйте какой-то ajax или даже просто хороший олемовый javascript для «расширения» статей. ограничьте их отображение только первым абзацем или около того, а затем нажмите кнопку «читать больше», которая отображает остальную часть содержимого статьи. Если он встроен в страницу и скрыт/показан с помощью css и javascript, он по-прежнему будет индексироваться поисковыми системами.
  3. Вероятно, лучше, чем предыдущий для целей SEO. Поместите каждую статью на свою собственную страницу и сделайте свой список статей, чтобы отобразить первый абзац или около того с помощью ссылки «читать дальше», чтобы перейти на полную страницу статьи. это, вероятно, предпочтительнее, потому что: a) это просто (KISS - всегда хороший метод). b) он дает вашему сайту более уникальные страницы, не смешивая ключевые слова так же хорошо (полезно для SEO). c) статьи могут быть напрямую связаны с другими сайтами (хорошо для SEO)

Только некоторые мысли. Никогда не бывает «лучшего» способа сделать что-либо, просто способы, которые имеют больше смысла в контексте.

1

Подсчитайте количество статей в текущей категории,

Разделить сумму на сумму на странице, чтобы получить общее количество страниц.

Выберите изделия в количестве, на странице из MySQL, где идентификатор> (pagenum * количество на странице)

создать ссылки для навигации.

Пример запроса:

$sql = "SELECT * FROM articles ORDER BY date ASC LIMIT 0, 20"; // This will return the first 20 

$sql = "SELECT * FROM articles ORDER BY date ASC LIMIT 40, 20"; // This will return 40-60 

Примечание: Это называется нумерацией страниц для будущей ссылки/поиска. Есть много хороших примеров и некоторые рамки, которые справляются с этим для вас.

Простой учебник: http://www.phpfreaks.com/tutorial/basic-pagination

1

Я не работаю с PHP специально, но общая стратегия для выполнения чего-то вроде этого заключается в том, чтобы спроектировать ваш запрос для динамического ограничения на основе требуемого количества элементов на странице и количества элементов, которые нужно пропустить. Другими словами, ваш SQL вдоль линий следующее:

$stmt = $mysqli->prepare("SELECT id, title, createdDate FROM tArticles ORDER BY createdDate desc LIMIT :skip, :itemsPerPage"); 

Если вы отслеживаете это по номеру страницы, ваш: скип параметр связывания будет получена, принимая номер текущей страницы (начиная с 0) и умножает количество элементов на страницу.

Возможно, вам стоит взглянуть на the answer for this question, чтобы избежать возможных распространенных ошибок, требующих, чтобы ваши переменные были целыми числами перед привязкой.

1

Я помню, как однажды я смотрел на то, как Blogger сделал это, и это было довольно интересно

Это было что-то вроде этого:

  • имеют по умолчанию post-timestamp (должна быть самая новая должность)
  • по умолчанию имеет display-per-page (что-то вроде 10-20)
  • затем сделать поиск по вашей БД, начиная в post-timestamp и ограничить поиск к display-per-page
  • дать «следующий» связать post-timestamp последнего поста поиска наряду с display-per-page
Смежные вопросы