Dernier enregistrement d'une table mysql

Résolu
arnold002
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007
- 10 nov. 2004 à 15:25
LuggerHouse
Messages postés
3
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
21 août 2006
- 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.

12 réponses

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

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

@++

R@f

3
LuggerHouse
Messages postés
3
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
21 août 2006

10 déc. 2004 à 19:58
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.
3
coockiesch
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
10 nov. 2004 à 20:18
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

1
arnold002
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007

10 nov. 2004 à 20:29
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.
0

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

Posez votre question
coockiesch
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
10 nov. 2004 à 20:35
Je viens de te donner la requete pour récupéré la derneir id... ;)
;)
@++

R@f

0
arnold002
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007

10 nov. 2004 à 20:38
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
0
coockiesch
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
10 nov. 2004 à 21:01
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

0
arnold002
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007

10 nov. 2004 à 21:06
C sympa, j'essaye ça . Merci !
0
coockiesch
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
10 nov. 2004 à 21:23
Oki! Tiens moi au courant, stp

@++

R@f

0
arnold002
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007

11 nov. 2004 à 17:32
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.
0
coockiesch
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
11 nov. 2004 à 18:51
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

0
arnold002
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007

11 nov. 2004 à 20:39
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
0