Dernier enregistrement d'une table mysql [Résolu]

arnold002 121 Messages postés mercredi 27 octobre 2004Date d'inscription 5 mars 2007 Dernière intervention - 10 nov. 2004 à 15:25 - Dernière réponse : LuggerHouse 3 Messages postés vendredi 10 décembre 2004Date d'inscription 21 août 2006 Dernière intervention
- 10 déc. 2004 à 19:58
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.
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
coockiesch 2268 Messages postés mercredi 27 novembre 2002Date d'inscription 13 septembre 2013 Dernière intervention - 11 nov. 2004 à 21:43
3
Merci
Pas de problème, ;-)

Accepte ma réponse comme ca le sujet passe en résolu, stp

@++

R@f

Merci coockiesch 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de coockiesch
Meilleure réponse
LuggerHouse 3 Messages postés vendredi 10 décembre 2004Date d'inscription 21 août 2006 Dernière intervention - 10 déc. 2004 à 19:58
3
Merci
La fonction ideal devrait, à mon avis utiliser la fonction de mysql
MAX. Ainsi la query deviendrait:
select max(id) from table.

retour un seul enregistrement qui est la valeur maximale du champs dasn la base de donnée.

Merci LuggerHouse 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de LuggerHouse
coockiesch 2268 Messages postés mercredi 27 novembre 2002Date d'inscription 13 septembre 2013 Dernière intervention - 10 nov. 2004 à 20:18
0
Merci
Salut!
Il faut savoir quel est l'id du dernier enregistrement, tu peux faire un:
SELECT id FROM table ORDER BY id DESC LIMIT 0, 1


@++

R@f

Commenter la réponse de coockiesch
arnold002 121 Messages postés mercredi 27 octobre 2004Date d'inscription 5 mars 2007 Dernière intervention - 10 nov. 2004 à 20:29
0
Merci
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.
Commenter la réponse de arnold002
coockiesch 2268 Messages postés mercredi 27 novembre 2002Date d'inscription 13 septembre 2013 Dernière intervention - 10 nov. 2004 à 20:35
0
Merci
Je viens de te donner la requete pour récupéré la derneir id... ;)
;)
@++

R@f

Commenter la réponse de coockiesch
arnold002 121 Messages postés mercredi 27 octobre 2004Date d'inscription 5 mars 2007 Dernière intervention - 10 nov. 2004 à 20:38
0
Merci
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
Commenter la réponse de arnold002
coockiesch 2268 Messages postés mercredi 27 novembre 2002Date d'inscription 13 septembre 2013 Dernière intervention - 10 nov. 2004 à 21:01
0
Merci
Salut!
Tu fais un truc genre:
$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


@++

R@f

Commenter la réponse de coockiesch
arnold002 121 Messages postés mercredi 27 octobre 2004Date d'inscription 5 mars 2007 Dernière intervention - 10 nov. 2004 à 21:06
0
Merci
C sympa, j'essaye ça . Merci !
Commenter la réponse de arnold002
coockiesch 2268 Messages postés mercredi 27 novembre 2002Date d'inscription 13 septembre 2013 Dernière intervention - 10 nov. 2004 à 21:23
0
Merci
Oki! Tiens moi au courant, stp

@++

R@f

Commenter la réponse de coockiesch
arnold002 121 Messages postés mercredi 27 octobre 2004Date d'inscription 5 mars 2007 Dernière intervention - 11 nov. 2004 à 17:32
0
Merci
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 :

$limiteprecedente = $choix - 1;
$limitesuivante = $choix + 1;

if($choix==1){
echo('');
}
else {
echo('');
echo('');
}

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.
Commenter la réponse de arnold002
coockiesch 2268 Messages postés mercredi 27 novembre 2002Date d'inscription 13 septembre 2013 Dernière intervention - 11 nov. 2004 à 18:51
0
Merci
Salut!
Je comprends pas, tu exécut mon code (avec cette modif si tu veux):
$result = mysql_query("SELECT id FROM table WHERE valide='1' ORDER BY id DESC LIMIT 0, 1") or die('Erreur MySQL');

$data = mysql_fetch_array($result);

if($choix > 1)
echo('[affich_recette.php?choix=' . $limiteprecedente . ' ]');

if($choix < $data['id'] - 1)
  echo('[affich_recette.php?choix=' . $limitesuivante . ' ]');


C'est OK?

@++

R@f

Commenter la réponse de coockiesch
arnold002 121 Messages postés mercredi 27 octobre 2004Date d'inscription 5 mars 2007 Dernière intervention - 11 nov. 2004 à 20:39
0
Merci
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++

Arnaud
Commenter la réponse de arnold002

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.