suivant et précedent

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : suivant et précedent

par Elie » 24 mai 2005, 13:52

Je dirait meme plus :
$idp = ((isset($_GET['idp'])) AND (is_int($_GET['idp']))) ? addslashes($_GET['idp']) : 0;

par Cyrano » 24 mai 2005, 12:06

La première chose que je dirais : aère un peu ton code, ça facilite la lecture; Ensuite: par rapport au premier post, tu utilises une variable sans en récupérer la valeur: $idp n'est pas initialisée dans ce que tu nous montres, on devrait voir en début de page:
<?php
if(isset($_GET['idp']))
{
    $idp = $_GET['idp'];
}
Suivi éventuellement d'un else pour attribuer une valeur par défaut, ça évitera les messages d'erreur.

Ensuite dans ton dernier message, si au lieu d'obtenir le dernier tu veux le premier élément de la base, inverse l'ordre de tri :
$requete = mysql_query("SELECT id FROM articles WHERE id > ".$idp." AND publier='OUI' ORDER BY id ASC LIMIT 1");
$data = mysql_fetch_assoc($requete);
echo "nadege ". $data['id'];
echo "<a href=\"poubelle2.php?idp=". $data['id'] ."\"> référence suivante </a>"; 
Tu noteras que je sépare le SQL du PHP en faisant des concaténations de chaines propres, ça limite considérablement les risques d'erreurs.

[RESOLU]suivant et precedent

par Nadège » 24 mai 2005, 12:00

Je ne sais pas pouruqoi aujuord'hui j'ai toruvé mais ca fonctionne....
j'ia directement essayé dans la base de données et la réponse est venue
c'etait juste un léger soucis d'ecriture

pour ceux que ca interesse

<?
//reference suivante

$requete=mysql_query("SELECT * FROM articles WHERE id>'$idp' && publier LIKE 'OUI' LIMIT 1 ");

$data = mysql_fetch_assoc($requete);
echo "<a href="poubelle.php?idp=${data['id']}">référence suivante </a>";

?>

par Invité » 24 mai 2005, 11:33

Merci de ta reponse
en fait j'avais essayer un truc du style

//reference suivante


$requete=mysql_query("SELECT id FROM articles WHERE id>$idp && publier='OUI' ORDER BY id DESC LIMIT 1");
$data = mysql_fetch_assoc($requete);
echo "nadege $date[id]";
echo "<a href=\"poubelle2.php?idp=${data['id']}\"> référence suivante </a>";

mais là non plus ca ne fonctionne pas ca me renvois au tout dernier enregistrement de la base

par zeus » 24 mai 2005, 11:29

C'est normal, tu pense bienà récupérer tes enregistrements, mais tu incrémente de 1, sans tester si il est interdit ou non !!!

A mon avis, il faut que tu change $num=$idp-1; et $num=$idp+1;

Je regarde comment est ce que tu pourrais faire

suivant et précedent

par Nadège » 24 mai 2005, 11:19

Bonjour,
J'ai un probleme qui peut paraitre simple mais je dois avouer que ca fait un moment que je bloque.
J'ai une table (articles) avec des enregistrements, certains peuvent etre publiés et d'autres non.
Quand le champ 'publier' est indiqué 'non' alors l'article ne s'affiche pas.

J'ai une barre de navigation où l'on peut faire défiler article après article grâce à leur id.
Mon probleme c que mes "precedent" et "suivant" ne tiennent pas compte du fait que l'article soit publié ou non..Je voudrais que qi l'article n'est pas publier alors dans le defilé des articles il n'apparaissent pas, ce qui n'est pas le cas en ce moment.

le code :

//ref précedente
$num=$idp-1;
if($num=="0"){ echo "rien";}
else{
echo "<a href=\"poubelle2.php?idp=$num\"> référence préc&eacute;dente</a>";
}



//reference suivante
$requete=mysql_query("SELECT id FROM articles WHERE publier='OUI' ORDER BY id DESC");
$idmax=mysql_result($requete,0);
$num=$idp+1;
if($num>$idmax){ echo "rien";}
else {
echo "<a href=\"poubelle2.php?idp=$num\">référence suivante </a>";}

Les id sont passées par l'url , style : poubelle2.php?idp=240



Merci de votre aide.
Nadege