Pagination

Fermé
sabrine - 27 mars 2014 à 09:46
 sabrine - 28 mars 2014 à 08:45
bnjr a tous svp aider moi pourquoi ce code ne fonnctionne pas correctement voila ces deux page php
index.php
<?php
include("function.php");
$nbr_page= ceil(nbr_pays()/10);
if(isset($_GET['page']))
{
$page=$_GET['page']=1;
}else
{
$page=$_GET['page'];
}



$results=afficher_pays($page,10);

foreach($results as $result)
{
echo $result['name'].'<br>';
}

$i=1;
while($i<=$nbr_page)

{
if($i==$page)
{echo $i;}
else{

echo"<a href='?page=$i'> ".$i." </a>";
$i++;
}
}
?>





function.php
<?php 
require_once('connexion.php');


function afficher_pays($page,$per_page)
{
$debut=(int)($page-1)*$per_page;
$per_page=(int)$per_page;
$results=array();
$sql=mysql_query("SELECT * FROM store LIMIT {$debut},{$per_page}");
while($row=mysql_fetch_assoc($sql))
{
$results[]=$row;
}
return $results;
}

function nbr_pays()
{
    $query=mysql_query("SELECT COUNT(id) FROM store");
	return mysql_result($query,0);
}

?>

5 réponses

deltonio2 Messages postés 20 Date d'inscription vendredi 21 mars 2014 Statut Membre Dernière intervention 23 décembre 2014 3
Modifié par deltonio2 le 27/03/2014 à 10:31
Bonjour,
Sans même lire tout ton code, je vois déjà aux toutes premières instructions une erreure:
else
{
   $page=$_GET['page'];
}

Tu ne peux pas dire, si le GET de page n'existe pas, alors la variable page est égal au GET de page, vu qu'il n'existe pas.
De plus, avec ce code:
$page=$_GET['page']=1;

Tu attribues la valeur une à ton GET (ce qui en principe ne se fait pas) et à ta variable page. Ce qui fait que quelle que soit ta valeur GET, ta variable page vaudra toujours 1.
Il faut que tu revoies la logique de ton code.
Si tu as encore des problèmes après l'avoir repensé, repost ton problème.
Cordialement.
0
merci bien pour votre repense
en fete j avais suivie un tuto sur youtube voia le lien de la premier parti :
:http://www.youtube.com/watch?v=SepoI55vAqY
et le lien de la deuxiémme partie :http://www.youtube.com/watch?v=5FMccPFcGkw
il fonnctionne correctement avec le GET dans les videos mais chez moi nn :/
merci d avoir m aider ou de me proposer une solution pour faire la pagination de mes pages c est tres important pour moi merci bien
0
deltonio2 Messages postés 20 Date d'inscription vendredi 21 mars 2014 Statut Membre Dernière intervention 23 décembre 2014 3
27 mars 2014 à 11:23
Pourrais-tu me donner ta base de données pour que je puisses tester?
Je viens de corriger une ou deux incohérences mais je n'ai rien tester et je ne sais pas si c'est que tu veux.
Voici ton code un peu modifié:
<?php
	require_once('connexion.php');
	function afficher_pays($page,$per_page){
		$debut=(int)($page-1)*$per_page;
		$per_page=(int)$per_page;
		$results=array();
		$sql=mysql_query('SELECT * FROM store LIMIT '.$debut.','.$per_page);
		while($row=mysql_fetch_assoc($sql))$results[]=$row;
		return $results;
	}
	function nbr_pays()
	{
		$query=mysql_query("SELECT COUNT(id) FROM store");
		return mysql_result($query,0);
	}
	$nbr_page=ceil(nbr_pays()/10);
	if(isset($_GET['page']))$page=$_GET['page'];
	else $page=1;
	$results=afficher_pays($page,10);
	foreach($results as $result)echo $result['name'].'<br>';
	for($i=1;$i<=$nbr_page;i++){
		if($i==$page)echo $i;
		else echo'<a href="page='.$i.'">'.$i.'</a>';
	}
?>
0
merci pour votr repense voila le code de la table store de ma base tav
-- phpMyAdmin SQL Dump
-- version 3.5.1
-- http://www.phpmyadmin.net
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
-- phpMyAdmin SQL Dump
-- version 3.5.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Mar 28, 2014 at 07:28 AM
-- Server version: 5.5.24-log
-- PHP Version: 5.3.13

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: 'tav'
--

-- --------------------------------------------------------

--
-- Table structure for table 'store'
--

CREATE TABLE IF NOT EXISTS 'store' (
  'id' int(11) NOT NULL,
  'name' varchar(30) NOT NULL,
  'qte' int(11) NOT NULL,
  'price' float NOT NULL,
  PRIMARY KEY ('id')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table 'store'
--

INSERT INTO 'store' ('id', 'name', 'qte', 'price') VALUES
(8, 'Apla', 12, 0.53),
(9, 'Boga', 43, 0.53),
(10, 'Cake', 36, 0.53),
(11, 'Celtia', 15, 0.5623),
(12, 'Chips', 9, 0.53),
(13, 'Chocolate', 41, 0.254),
(14, 'Coca', 19, 0.53),
(15, 'CocaLight', 20, 0.53),
(16, 'CocaZero', 19, 0.53),
(17, 'Coffee', 11, 0.53),
(18, 'Cookies', 9, 0.53),
(19, 'Croissants', -2, 0.53),
(20, 'Fanta', 43, 0.53),
(21, 'Garci', 5, 0.5623),
(22, 'Goldina', 4, 0.53),
(23, 'Grain', 3, 0.254),
(24, 'GreenTea', 20, 0.53),
(25, 'hahahaha', 15, 0.2564),
(26, 'Jam', 20, 0.53),
(27, 'MiniJuice', 47, 0.53),
(28, 'Orangina', 10, 0.53),
(29, 'RedWine', 43, 0.5698),
(30, 'Sandwich', 0, 0.2356),
(31, 'SchweppesAgrumes', 44, 0.53),
(32, 'SchweppesCitron', 44, 0.53),
(33, 'SchweppesTonic', 47, 0.53),
(34, 'Sprite', 44, 0.53),
(35, 'Tarte', 44, 0.2356),
(36, 'Tea', 44, 0.53),
(37, 'Tuc', 44, 0.254),
(40, 'redw', 40, 1.4),
(44, 'rosew', 39, 1.4);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

0