Se deplacer dans les enregistrements d'une db
Seb
-
Bobinours Messages postés 2903 Statut Membre -
Bobinours Messages postés 2903 Statut Membre -
J'ai un serveur apache avec un module PHP et un serveur MySql
J'ai réalisé une table ayant une clef primaire qui s'auto incrémente
Je lis dans ma base de donnée avec
$query = "SELECT * FROM $table WHERE id_table = ID ";
Je souhaite pouvoir passer à l'enregistrement suivant.
Je souhaite aussi avoir des informations comme le dernier ID de ma table, le nombre d'enregistrement.
Seulement, je ne veux pas lire ma table en entier et certains ID peuvent avoir été effacé.
Cela est-il faisable (et comment)
Merci
J'ai réalisé une table ayant une clef primaire qui s'auto incrémente
Je lis dans ma base de donnée avec
$query = "SELECT * FROM $table WHERE id_table = ID ";
Je souhaite pouvoir passer à l'enregistrement suivant.
Je souhaite aussi avoir des informations comme le dernier ID de ma table, le nombre d'enregistrement.
Seulement, je ne veux pas lire ma table en entier et certains ID peuvent avoir été effacé.
Cela est-il faisable (et comment)
Merci
A voir également:
- Se deplacer dans les enregistrements d'une db
- Déplacer une colonne excel - Guide
- Deplacer une icone sur iphone - Guide
- Fichier .db ✓ - Forum Windows
- Windows 11 deplacer barre des taches - Guide
- Comment enregistrer une conversation - Guide
5 réponses
Oui c'est tout à fait faisable.
Tu fais un
$result = mysql_query($query);
Puis pour parcourir les enregistrements :
while ($row = mysql_fetch_row($result)) {
$row[0] = "champ1";
...
}
Pour compter le nombre de résultats:
$nombre = mysql_count($result);
Tu fais un
$result = mysql_query($query);
Puis pour parcourir les enregistrements :
while ($row = mysql_fetch_row($result)) {
$row[0] = "champ1";
...
}
Pour compter le nombre de résultats:
$nombre = mysql_count($result);
Si je comprends bien ton post Jeff, cela m'oblige à lire la table en entier.
Est il possible, lorsque l'on fait:
$query = "SELECT * FROM table ";
de rajouter un parametre (WHERE ...)pour qu'il ne sorte que les n premieres réponses avec:
$result = mysql_query($query);
(toujour dans l'objectif de ne pas sortir toute la table)
Sinon, j'ai trouvé une fonction qui pourrait me donner la valeur max de ma clef primaire, mais j'arrive pas à m'en servir:
SELECT MAX(ID) FROM $table;
Quelqu'un la déjà utilisé?
Merci
Est il possible, lorsque l'on fait:
$query = "SELECT * FROM table ";
de rajouter un parametre (WHERE ...)pour qu'il ne sorte que les n premieres réponses avec:
$result = mysql_query($query);
(toujour dans l'objectif de ne pas sortir toute la table)
Sinon, j'ai trouvé une fonction qui pourrait me donner la valeur max de ma clef primaire, mais j'arrive pas à m'en servir:
SELECT MAX(ID) FROM $table;
Quelqu'un la déjà utilisé?
Merci
Il y a la clause LIMIT dans un SELECT. Je ne sais pas si c'est vraiment ce que tu cherches ça permet de ne prendre que les X premiers résultats qui auront été trouvé (même sans WHERE)
Voir : http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#SELECT
Voir : http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#SELECT
Vous savez pas comment revenir à l'enregistrement précédent en php?? (le contraire de fetch). Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sache tout d'abord qu'une Base de Donées n'est pas une liste chaînée. Pour faire cela, il faudrait que tu gères deux champs PRECEDENT et SUIVANT dans chaque enregistrement (et que tu les mettes à jour lors d'un ajout et d'une suppression...
Ceci dit, MySQL y a pensé, et je crois que tu trouveras ton bonheur là : http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#HANDLER
;-)
(Attention, je ne te garanti pas que l'ordre affiché soit le même que celui des ID. Ce sera l'ordre de stockage. Si tu as 3 enregistrements ID = 1, 2 et 3 que tu supprimes le 2 et ajoute le 4, tu risques fort d'avoir l'ordre final : 1, 4, 3... A vérifier.)
Ceci dit, MySQL y a pensé, et je crois que tu trouveras ton bonheur là : http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#HANDLER
;-)
(Attention, je ne te garanti pas que l'ordre affiché soit le même que celui des ID. Ce sera l'ordre de stockage. Si tu as 3 enregistrements ID = 1, 2 et 3 que tu supprimes le 2 et ajoute le 4, tu risques fort d'avoir l'ordre final : 1, 4, 3... A vérifier.)
Ce n'est pas les champs suivant d'un enregistrement qu'il veut mais les enregistrements suivant ;-)