2013-08-14 4 views
0

Я создаю сайт, на котором я ссылаюсь на все мои открытия по всему Интернету, есть блог, он относится к нескольким статьям, но коротким и по одному на страницу. Я ищу функцию, которую я должен положить в div, чтобы получить предыдущую или следующую статью. В каждой строке моего массива SQL есть 'id', 'title', 'content', 'link' и 'date' информация. Итак, при поступлении на веб-сайт мы видим последнюю статью (как самую высокую id), и я хотел бы иметь кнопку (предпочитая мне редактируемый div в качестве переключателя), чтобы получить меньше id, чтобы установить новый 'id', 'title', 'content', 'link' и 'date' по соответствующим div.Как загрузить следующий/предыдущий пост

<html> 
<head> 
<title>Today I</title> 
</head> 
<body> 
<?php 
//On se connecte au serveur 
$base = mysql_connect ('dododo.dobido', 'dodobi', 'bibido'); 
//On sélectionne la db 
mysql_select_db ('do', $base) ; 

//On sélectionne tous les éléments de la table ckga_main, on les trie par ordre décroissant et on sélectionne le premier de la liste (donc l'id le plus élevé) 
$sql = 'SELECT * FROM CKGA_main ORDER BY id DESC LIMIT 1'; 
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 

//Début de la boucle (TANT qu'il y a des éléments dans ma requête, je sors des $data) 
while ($data = mysql_fetch_array($req)) 
{ 
    ?> 

    <div id="ajd">Aujourd'hui j'ai</div> 
    <div id="title"><?php echo $data['title']; ?></div> 
    <div id="content"> 
    <?php echo '<a href="'.$data['link'].'">'.$data['content'].'</a>';?> 
     </div> 
    <?php 
} // Fin de la boucle 
mysql_close(); 
?> 
</body> 
</html> 

Вы можете увидеть результат на this page (I'm french). Итак, мы можем представить <div id="prev_button">Previous Article</div>, который изменяет содержимое div в новую строку массива. Я посмотрел эту функцию на два дня ... Я не знаю, должен ли я выполнять функцию PHP, MySQL, Javascript или jQuery ... И я даже не знаю, какой у него должен быть внешний вид.

+0

В чем вопрос? Вы хотите, чтобы 'div' выглядел как« radobutton »и действует как тег' a'? В любом случае ... вам придется изменить свой SQL-запрос с помощью параметра, и ваш тег 'div' /' radiobutton'/'a' будет иметь ссылку, которая соответствует этому параметру в запросе SQL. – putvande

+0

Medo42 понял мою проблему, его решение на самом деле не работает, но он уловил проблему. – Eustache

ответ

1

Ваше решение должно будет использовать уровень HTML, PHP и SQL, Javascript не требуется.

Давайте рассмотрим это шаг за шагом с помощью очень простого решения. Предупреждение: я не делал PHP через некоторое время, и я не проверяю свой код. Решение также ДЕЙСТВИТЕЛЬНО ограничено, например. Я не проверяю, существует ли предыдущая или следующая статья. Это просто означает указать вам в правильном направлении.

Вы хотите, чтобы пользователь нажал на что-то, чтобы получить новый контент (предыдущая статья). Самый простой способ сделать это - использовать ссылку, которая содержит необходимую информацию в URL-адресе - возможно, идентификатор предыдущей статьи. Вот то, что это может выглядеть (внутри в то время как петля):

<a href="http://chezleyoule.com/testbdd/?article=<?php echo ($data['id'] - 1); ?>

article=123 -частью является параметром GET. Сценарий может проверить, что этот параметр есть - если это не так, просто отображать последнюю страницу, как вы делаете, но если она есть, то использовать, чтобы извлечь статью из базы данных:

$sql = 'SELECT * FROM CKGA_main where id=' . intval($_GET['article']);

Затем выполните запрос и покажите статью как обычно.

+0

То, что моя проблема, но это даже не работает, адрес страницы остается на id как 3 http://chezleyoule.com/testbdd/. Но это была большая помощь! – Eustache

+0

Я не могу начать выяснять, почему он не работает, не видя обновленного кода. – Medo42

+0

Однако я сделал одну ужасную ошибку и дал вам код, который уязвим для SQL-инъекции. Это не то, что вызывает вашу проблему, но я исправлю это для моего душевного спокойствия. Позже вы захотите использовать параметризованные запросы, чтобы полностью предотвратить эту проблему безопасности, но я не беспокоился, потому что это не часть вашего вопроса ... – Medo42

0

насчет решения этой формы:

//select all of the post ID's and put them in an array 

//pick which post you wish to display (the highest ID if $_GET['postid'] is not set) 

//create a button to link to 'mypage.php?postid=<previous_post_id>' if there is one 

//create a button to link to 'mypage.php?postid=<next_post_id>' if there is one 

//get data from table for current page postid (or $_GET['postid'] if it is set) and display 

решение было бы очень похоже при использовании AJAX, кроме вас не будет ссылаться на другую страницу, а просто обновить содержание и кнопки, основываясь на AJAX return

+0

Я бы очень хотел использовать AJAX, но даже я не могу осваивать или менее реально понимать отношения между PHP и MySQL, я предпочитаю держать на этих. Но, я уверен, если бы я знал, что это действительно хорошо, я бы получил его на AJAX. – Eustache

Смежные вопросы