Bonjour,
J'ai une page qui affiche des recettes contenues dans une BDD mysql, sous la forme .../recette.php?id=40 dans l'url.
J'affiche sur toutes les pages des liens vers recette précédente et suivante dans BDD (lien affiché .../recette.php?id=39 ou .../recette.php?id=41).
Lorsque je suis sur la première recette de la table (ou id=1), le lien précédent ne s'affiche pas (grâce à la fonction if else : if(id==1){else echo "id suivante mais pas id précédente}
Comment faire la même chose en sens inverse c à d ne pas afficher id suivante si je suis sur le dernier enregistrement de ma table.
Merci de vos réponses.
A voir également:
Recuperer le dernier enregistrement d'une table mysql
je ne sais pas quel est le dernier id. J'insère constamment des recettes dans ma table donc le dernier id varie constamment.
Je voudrai pouvoir afficher ma demande quelle que soit la valeur du dernier id dans une fonction if.. else.
Ok, désolé...
je veux dire, comment insérer cette requête dans une fonction.
if idrecette = dernière id else ne pas afficher lien 'page suivante' ?
merci de ta réponse
$result = mysql_query("SELECT id FROM table ORDER BY id DESC LIMIT 0, 1") or die('Erreur MySQL');
$data = mysql_fetch_array($result);
if($currentId != $data['id'] - 1)
// ici, afficher le lien
Hello,
Ok avec ta requête, je ne pas afficher dans url un id supérieur au dernier champ de la table. Si dernier champ=25, je ne peux pas taper ...recette.php?id=26 car ça retourne une erreur.
Le truc c que ma requête dans ma page recette est
$sql = "SELECT * FROM recette where id='$choix' AND valid='1'"
$choix étant une selection faite par formulaire et valid=1 un champ qui me permet de n'afficher que les recettes validées par mes soins et non des recettes insérées par des visiteurs dans ma BDD (par défaut valid=0)
J'ai fait un truc du genre à partir de ta requête
$req = mysql_query("SELECT id FROM table ORDER BY id DESC LIMIT 0, 1") or die('Erreur MySQL');
$result= mysql_fetch_array($req);
if($currentId != ('SELECT id FROM recette where valid=1 ORDER BY id DESC LIMIT 0,1)){
echo affiche lien précédent
}
else{
echo affiche lien précédent
echo affiche lien suivant
}
Ce qui m'empêche d'accéder à la page (dernier id+1)-->page d'erreur mais ça n'affiche pas les liens correspondant.
Pour être plus précis, j'affiche le code que j'utilise :
Lorsque je suis à id=1, il m'affiche uniquement le lien suivant, si id différent de 1, il m'affiche les liens précédent et suivant.
Ca fonctionne pour çà mais pas dans l'autre sens.
Salut,
C ok merci beaucoup. En fait, j'suis vraiment novice et je savais pas qu'on pouvait executer plusieurs requêtes différentes sur une même page. Je t'avais mal compris, désolé.
J'ai juste du changer la ligne suivante :
if($choix < $data['id']-1)
en retirant le -1 sinon il s'arrêtait sur mon avant dernier champ au lieu du dernier. Là ça fonctionne du tonnerre !!
Merci encore de ta patience.
A++