8791 sujets

Développement web côté serveur, CMS

Bonjour, j'espere être dans le bon forum, j'ai un petit probleme d'optimisation, voila je cherche a faire un systeme de pagination en fournissant seulement l'id
comme ceci : article.php?id_article=xx

J'utilise dans mes requêtes sql

		$pagi = mysql_query("SELECT id, titre FROM article WHERE confirme='1' AND id !> '$id_article' ORDER BY id DESC LIMIT 1");
		$i=1;
            while($result=mysql_fetch_assoc($pagi))
           {
                $barre_nav .= "<strong><a href=\"". $url . $result['id'] . $s_m . $orderby ."\" title=\" ". $result['titre'] ."\">". $i ."</a></strong> ";
				$i++;
            }

En fait je suis pas sûr pour ça !> (non supérieur :s )

-Je voudrais affiché les pages dont les articles sont inférieur à l'id présente
-puis la page de l'id présente
-puis les pages des articles suivants l'id présente (id présente = id reçu par $_GET['id_article']

J'ai un second probleme : la variable $i qui me sert a numeroter les pages s'éfface une fois la boucle terminée : comment récuperer la derniere?

J'espere avoir été clair :x
Si je suis pas du tout sur la bonne voie, merci de me le préciser également
cordialement oci Smiley smile
merci Smiley smile
Modifié par ocelote (28 Aug 2007 - 17:04)
bonjour,

Alors j'ai pas compris le 1er probleme, car si j'ai lu ce que tu as marqué cela veux dire que tu veux afficher toute les pages en faite Smiley sweatdrop

Pour ta variable $i normalement si tu fais un echo $i tu auras la dernier valeur, car elle ne s'efface pas sauf si tu la reinitialise entre deux...

Et pourquoi fait tu une limit à 1 dans ta requete ??
Smiley eek le LIMIT 1 je sais pas ce qu'il fait la Smiley langue merci (c'est le c/c )

Par exemple il existe 4 article d'id 2, 5, 6, 9
On va sur la page article.php?id_article=6
Grace à cette requete j'esperais affiché les article (enfin les pages) 2 et 5 avec les pages respectives 1 et 2

Le reste sera simplement l'inverse de cette requete...

le $i ne s'incrément pas parce que la requete ne s'effectue pas autant pour moi :s
Bonjour,

Pour le premier problème, en générale "non supérieur à" s'écrit plutôt "plus petit ou égal à" soit <= Smiley murf
suis je dans la bonne voie pour réaliser ce que je désir ?
 id < '$id_article' 

Pourquoi ce code ne fonctionne pas ? (cela marche quand je le retire mais j'en ai besoin pour ma requête Smiley smile )
Modifié par ocelote (29 Aug 2007 - 01:39)
Salut Smiley cligne ,

si ça ne fonctionne pas il faut débuguer Smiley langue !

Pour cela tu places :
echo $id_article;
juste avant d'effectuer ta requête pour vérifier sa valeur.

Toujours pour retrouver rapidement une erreur d'écriture dans une requête je ne fais jamais directement $pagi = mysql_query("Select ..."); mais :
$requete = "SELECT id, titre FROM article WHERE confirme='1' AND id < '$id_article' ORDER BY id DESC";
$pagi = mysql_query($requete) or die("Erreur lors de l'exécution de la requête :<br /><strong>$requete</strong>");
Comme ça si ça plante tu peux visualiser ce qui a été transmis et si ça ne plante pas tu peux faire un echo $requete; et il suffit de faire un copier/coller et de la lancer directement dans PhPMyAdmin (SQL) ...

A+ Smiley smile
C'est génial merci beaucoup Smiley smile $id_article était vide :'( je suis désolé du dérangement pour si peu, merci a vous