Problème MySQL : Nbre d'enregistrements
7 messages
• Page 1 sur 1
-

kmenslow - WRInaute passionné

- Messages: 2078
- Inscription: 7 Aoû 2006
Problème MySQL : Nbre d'enregistrements
Bonjour,
Je me lance dans l'apprentissage du PHP / MySQL et je rencontre un petit problème. Voici ma situation :
J'ai une table comportant 3 colonnes :
- colonne 1 : "NUM" c'est un entier qui s'auto-incrémente à chaque nouvel enregistrement.
- colonne 2 et 3 : Ceux des données provenant d'un formulaire.
J'ai 40 enregistrements dans cette table donc j'ai le "NUM" qui s'est incrémenté de 1 jusqu'à 40.
Je viens de supprimer l'enregistrement 35, il me reste donc 39 enregistrements.
Au prochain enregistrement, mon NUM va passer à 41 et mon nombre d'enregistrements va passer à 40.
Sur l'index de mon site, j'affiche les 10 derniers enregistrements. Pour cela j'utilise la formule suivante :
donc $total = 40
Ensuite je fais une boucle
Mon problème c'est que $total est différent de ma dernière valeur de NUM.
Donc la boucle ne me donne pas l'enregistrement 41 car $total = 40.
Voila je bloque la dessus.
Comment puis-je faire pour remettre le nombre d'enregistrement = à la valeur de NUM ?
Merci de votre aide
Je me lance dans l'apprentissage du PHP / MySQL et je rencontre un petit problème. Voici ma situation :
J'ai une table comportant 3 colonnes :
- colonne 1 : "NUM" c'est un entier qui s'auto-incrémente à chaque nouvel enregistrement.
- colonne 2 et 3 : Ceux des données provenant d'un formulaire.
J'ai 40 enregistrements dans cette table donc j'ai le "NUM" qui s'est incrémenté de 1 jusqu'à 40.
Je viens de supprimer l'enregistrement 35, il me reste donc 39 enregistrements.
Au prochain enregistrement, mon NUM va passer à 41 et mon nombre d'enregistrements va passer à 40.
Sur l'index de mon site, j'affiche les 10 derniers enregistrements. Pour cela j'utilise la formule suivante :
- Code: Tout sélectionner
// Détermnation du nombre d'enregistrement
$select = 'SELECT num FROM texte';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
donc $total = 40
Ensuite je fais une boucle
- Code: Tout sélectionner
// initialisation des variables
$x = $total;
$z = 0;
// Listage de toute la table
while ($x >= $total -10 )
{ $req_texte_infos = "SELECT num, texte1, texte2 valide FROM texte WHERE num=$x";
$dataset_texte_infos
......... ........ ....... ....
$z = $x - 1;
$x = $z;
}
Mon problème c'est que $total est différent de ma dernière valeur de NUM.
Donc la boucle ne me donne pas l'enregistrement 41 car $total = 40.
Voila je bloque la dessus.
Comment puis-je faire pour remettre le nombre d'enregistrement = à la valeur de NUM ?
Merci de votre aide
-

UsagiYojimbo - WRInaute accro

- Messages: 8579
- Inscription: 23 Nov 2005
SELECT num, texte1, texte2 valide FROM texte ORDER BY num DESC LIMIT 0,10 ?
- lefou
- WRInaute discret

- Messages: 131
- Inscription: 7 Juin 2005
kmenslow a écrit:UsagiYojimbo a écrit:SELECT num, texte1, texte2 valide FROM texte ORDER BY num DESC LIMIT 0,10 ?
Cela va m'afficher les 10 premiers enregistrements de ma table ? non ?
Je souhaite afficher les 10 derniers
Le fait de mettre DESC permet de lire la table dans le sens décroissant donc du dernier jusqu'au premier. Bref cela affichera bien les 10 derniers résultats enregistrés.
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: Problème MySQL : Nbre d'enregistrements
kmenslow a écrit:
- Code: Tout sélectionner
// Détermnation du nombre d'enregistrement
$select = 'SELECT num FROM texte';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
Tu ferais mieux d'utiliser un SELECT count(*) FROM texte. Là tu te trimbales un paquet de données pour rien.
kmenslow a écrit:
- Code: Tout sélectionner
// initialisation des variables
$x = $total;
$z = 0;
// Listage de toute la table
while ($x >= $total -10 )
{ $req_texte_infos = "SELECT num, texte1, texte2 valide FROM texte WHERE num=$x";
$dataset_texte_infos
......... ........ ....... ....
$z = $x - 1;
$x = $z;
}
Ouh là.
Comem déjà dit, récupère la liste de tous les enregistrements que tu veux afficher d'un coup:
SELECT num,texte1,texte2 FROM texte ORDER BY num DESC LIMIT 10
Ensuite fais une boucle sur le résultat pour afficher tout ça.
Ca ira nettement plus vite, et en plus ça marchera
Au passage, rien n'empêche d'écrire $x = $x -1 (c'est une affectation, pas une égalité mathématique), ou encore $x -= 1 ou encore $x-- (la plus lisible...).
Jacques.
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- MYSQL Inserer plusieurs enregistrements
- Mysql bloque au bout de x enregistrements
- [PHP MYSQL] Affecter plusieurs enregistrements
- Enregistrements consécutifs sur un champs dans MYSQL
- Supprimer les enregistrements orphelins dans MySQL ?
- [résolu] [mysql] passer un champ à une valeur donnée pour tous les enregistrements
- Rapport entre le Nbre de VU/jour et le Nbre de résultats GG
- nbre de pages indexées et nbre BL sur Yahoo
- Plusieurs enregistrements, une seul requete ! probleme
- Affichage enregistrements et update
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
