Trouver un numero de ligne dans MySQL

Trouver un numero de ligne dans MySQL - PHP - Programmation

Marsh Posté le 07-09-2002 à 10:02:49    

Je voudrait trouver le numéro de ligne d'un résulat. Pour cela, j'ai pensé faire un requete MySQL, puis dés que je trouve la ligne avec telle information, je releve sa place par rapport au premier résultat.
Mais est-il possible d'éviter cela en demandant directement le numero de ligne a MySQL ?
 
J'ai deja essayé en php, mais c'est bien trop lent, imaginez si le script PHP doit parcourir des milliers de résultats!
J'ai aussi cherché sur google et sur la doc MySQL, mais je n'ai pas trouvé.
 
Merci de votre aide  ;)


---------------
Mon blog de nerd...
Reply

Marsh Posté le 07-09-2002 à 10:02:49   

Reply

Marsh Posté le 07-09-2002 à 10:23:55    

tu peux le faire en ajoutant à la fin de ta requete:

LIMIT x,1

x étant le No de ligne que tu veux récupérer


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 07-09-2002 à 10:41:13    

Mais je veut pas récupérer la ligne, mais son numéro !
Numero qui sera bien sur "1" avec ta solution...
Je voudrait trouver son numero de place si j'avais utilisé un select where.


---------------
Mon blog de nerd...
Reply

Marsh Posté le 07-09-2002 à 10:43:34    

castor666 a écrit a écrit :

Mais je veut pas récupérer la ligne, mais son numéro !
Numero qui sera bien sur "1" avec ta solution...
Je voudrait trouver son numero de place si j'avais utilisé un select where.



dans ce cas, ce n'est pas possible


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 07-09-2002 à 10:52:03    

Je suis sur que les pros de la BDD connaissent un pitit truc  ;)


---------------
Mon blog de nerd...
Reply

Marsh Posté le 07-09-2002 à 11:09:16    

Excuse moi, mais je fais des requetes toute la journée, il parrait même que je suis développeur de profession :na:  
Donc si je te dis que tu ne peut pas le faire avec MySQL, c'est que tu ne peut pas le faire avec MySQL :jap:  


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 07-09-2002 à 11:10:08    

c le id en fait que tu veut trouver


---------------
Qui mange un noix de coco entiere fait confiance a son anus
Reply

Marsh Posté le 07-09-2002 à 11:29:50    

Non, imagine : des topics classés par date, je veut trouver la place du topic ou je suis par rapport au plus récent  ;)
 
Ok the real smiley, je comprend... Alors je change de stratégie : c'est quoi la meilleur solution pour résoudre mon problème ?
Parce que celle évoqué dans le sujet du topic est bien trop lourde : imagine si je veut savoir la place d'un topic qui est vieux de 1 ans, le script va parcourire des milliers de topics avant d'arriver a ses fins...


---------------
Mon blog de nerd...
Reply

Marsh Posté le 07-09-2002 à 13:35:03    

dsl mais la je suis largue je suis une bille en php


---------------
Qui mange un noix de coco entiere fait confiance a son anus
Reply

Marsh Posté le 07-09-2002 à 19:09:39    

up de la rentré à ma maison [:huit]


---------------
Mon blog de nerd...
Reply

Marsh Posté le 07-09-2002 à 19:09:39   

Reply

Marsh Posté le 07-09-2002 à 21:47:22    

castor666 a écrit a écrit :

Non, imagine : des topics classés par date, je veut trouver la place du topic ou je suis par rapport au plus récent  ;)
 
Ok the real smiley, je comprend... Alors je change de stratégie : c'est quoi la meilleur solution pour résoudre mon problème ?
Parce que celle évoqué dans le sujet du topic est bien trop lourde : imagine si je veut savoir la place d'un topic qui est vieux de 1 ans, le script va parcourire des milliers de topics avant d'arriver a ses fins...



Tu peux compter le nombre d'articles plus récents que celui qui t'intéresse :
SELECT count(*) FROM articles WHERE Date < 'ta_date';

Reply

Marsh Posté le 07-09-2002 à 22:54:44    

Pas con!
Exellente idée, je pense que c'est la solution, merci  ;)
 
Mais si quelqu'un a une solution plus rapide...


---------------
Mon blog de nerd...
Reply

Marsh Posté le 07-09-2002 à 23:24:38    

mrbebert a écrit a écrit :

Tu peux compter le nombre d'articles plus récents que celui qui t'intéresse :
SELECT count(*) FROM articles WHERE Date < 'ta_date';




 
 
Sa revien au meme, il parcoureras de toutes façon tous tes topics pour ne compter que se qui correspond a ta condition !


Message édité par bozocarzu le 07-09-2002 à 23:25:10
Reply

Marsh Posté le 07-09-2002 à 23:28:11    

J'en vois pas d'autre


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 07-09-2002 à 23:30:23    

THE REAL SMILEY a écrit a écrit :

Excuse moi, mais je fais des requetes toute la journée, il parrait même que je suis développeur de profession :na:  
Donc si je te dis que tu ne peut pas le faire avec MySQL, c'est que tu ne peut pas le faire avec MySQL :jap:  



tu peux faire l'inverse ceci dit, avec mysql_data_seek :D


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 07-09-2002 à 23:31:50    

Sa sert a quoi cette fonciton ?

Reply

Marsh Posté le 07-09-2002 à 23:32:18    

à déplacer le pointeur de mysql_query d'un offset donné


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 07-09-2002 à 23:36:29    

Oula c'est trop compliqué pour moi sa
 
Deja que j'arrive pas a deplacer un pointeur dans un array, je ne vais pas mis mettre sur une bdd

Reply

Marsh Posté le 07-09-2002 à 23:37:08    

bozocarzu a écrit a écrit :

 
 
 
Sa revien au meme, il parcoureras de toutes façon tous tes topics pour ne compter que se qui correspond a ta condition !



Il y a une très grande différence entre :
- mysql envoie tous le contenu de la table et php parcours les champs en comptant les lignes
- mysql compte les lignes qui correspondent, et envoie seulement le résultat.

Reply

Marsh Posté le 07-09-2002 à 23:39:56    

Ouais pas bete sa !

Reply

Marsh Posté le 08-09-2002 à 20:15:39    

Mais comment je fait pour que mysql s'arrete de compter quand il rencontre le topic où on est ?


---------------
Mon blog de nerd...
Reply

Marsh Posté le 08-09-2002 à 21:01:16    

bozocarzu a écrit a écrit :

Oula c'est trop compliqué pour moi sa
 
Deja que j'arrive pas a deplacer un pointeur dans un array, je ne vais pas mis mettre sur une bdd




 
non ce n'est pas un multi de skylight :D

Reply

Marsh Posté le 08-09-2002 à 21:14:30    

Echoes a écrit a écrit :

 
 
non ce n'est pas un multi de skylight :D



les pointeurs c'est bon mangez en :D


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 08-09-2002 à 21:18:30    

[:kiki]

Reply

Marsh Posté le 08-09-2002 à 22:08:45    

joce a écrit a écrit :

les pointeurs c'est bon mangez en :D




 
Ouais mais faudrais quand meme que qq1 m'explique une jour !!

Reply

Marsh Posté le 09-09-2002 à 18:47:19    

castor666 a écrit a écrit :

Mais comment je fait pour que mysql s'arrete de compter quand il rencontre le topic où on est ?




 
Merci de me répondre  ;)  
Je tien a faire en sorte que mon forum soit rapide, merci de votre futur aide  :)  
 
mysql_data_seek() peut servir? je comprend pas a quoi il sert..

Citation :

mysql_data_seek()
void mysql_data_seek(MYSQL_RES *résultat, unsigned long long offset)
Description
Seeks to an arbitrary row in a query résultat set. This requires that the résultat set structure contains the entire résultat of the query, so mysql_data_seek() may be used in conjunction only with mysql_store_result(), not with mysql_use_result(). The offset should be a value in the range from 0 to mysql_num_rows(résultat)-1.

traduit par

Citation :

mysql_data_seek ()
Annulez mysql_data_seek (MYSQL_RES *résultat, la longue longue compensation non signée)
Description
Recherche à une rangée arbitraire dans un jeu de question résultat. Cela exige que la structure de jeu de résultat contienne résultat entier de la question, donc mysql_data_seek () peut être employé dans la conjonction seulement avec mysql_store_result (), pas avec mysql_use_result (). La compensation doit être une valeur dans la gamme de 0 à mysql_num_rows (résultat)-1.


Ca sert a quoi? comprend pas  :??:


---------------
Mon blog de nerd...
Reply

Marsh Posté le 10-09-2002 à 09:39:50    

:up:


---------------
Mon blog de nerd...
Reply

Marsh Posté le 10-09-2002 à 09:54:32    

C'est pour aller directement à une ligne du résultat. Quand tu utilises mysql_fetch_row(), tu vas de ligne en ligne. Là, tu peux sauter des lignes.
http://www.php.net/manual/en/funct [...] a-seek.php

Reply

Marsh Posté le 10-09-2002 à 11:28:50    

L ideal aurait été de faire une "vue" mais je ne sais pas si mysql gere ca (en tout cas dans la version 3 il n y a pas, peut etre la 4)

Reply

Marsh Posté le 10-09-2002 à 11:55:03    

Oreste a écrit a écrit :

L ideal aurait été de faire une "vue" mais je ne sais pas si mysql gere ca (en tout cas dans la version 3 il n y a pas, peut etre la 4)



Encore faut il que la vue soit utilisé régulièrement.
Par ce que si c'est une vue par ligne de la table, c'est vraiment pas éfficace.

Reply

Marsh Posté le 10-09-2002 à 14:38:21    

Ok, merci a vous  ;)  
Je croit que j'ai trouvé comment contourner le probleme en le prennant par un autre coté  [:huit]


---------------
Mon blog de nerd...
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed