|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() Inscription : août 2006 Messages : 217 ![]() |
Je sollicite encore votre aide et vais encore abuser de votre temps afin que vous m'orientiez sur une piste
Toujours concernant mon application membres et département, j'aimerais à partir d'une saisie cette fois que l'internaute puisse taper un chiffre entre 1 et 100 par exemple et que les résultats s'affichent. Exemple : si je tape 41, j'aimerais que la 41ème fiche membre apparaisse suivie des 10 suivantes (c a d 42,43,44,...,51) Pour l'instant avec ce que j'ai mis en place, c a d une recherche par 'id' , si je tape 2 , la fiche 2 apparaît ainsi que ... la 12, la 22, 32 ... ainsi que toute celle avec un chiffre 2 au lieu d'afficher la 2, la 3,4,5,6,...,12 Voici mon code pour la saisie : Code :
Concernant ma page de résultat voici mon code : Code :
|
||||
|
|
00
|
|
|
#2 |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Si tu fais :
et que $word contient 2, la requête te renvoie toutes lignes où l'id contient 2. Si tu veux récupérer les lignes où l'id est 2 et +, il faut le faire avec l'opérateur > et non LIKE. Et bien sûr ne pas oublier le "ORDER BY id " pour s'assurer que les lignes soient ordonnées : Code :
WHERE id >= %$word ORDER BY id LIMIT 0,10 |
|
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : août 2006 Messages : 217 ![]() |
Je viens de modifier mon code comme tu me l'as indiqué ci-dessus, mais les résultats s'affichent de 1 à 10 sans prendre en compte l'id que je rentre...
J'ai peut être pas fais ce qu'il fallait ? Voici mon code : Code :
|
||
|
|
00
|
|
|
#4 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Moi je dirais que délimiter la recherche dans le where. Par exemple, tu tapes 41 tu fais ton where comme ceci :
Code :
WHERE nomduchamp >= 41 AND nomduchamp <= 41 +10 Hum il faudrait vérifier si un fonction n'existe pas déjà |
|
|
00
|
|
|
#5 | ||
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : août 2006 Messages : 217 ![]() |
J'ai du mal à comprendre pourquoi le code ci dessous me renvoi les résultats avec toutes les fiches où le 2 apparaît par exemple
Code :
$search = mysql_query("SELECT * FROM $mbmembres WHERE id LIKE '%$word%' LIMIT 0,10") or die ("ERROR:" . mysql_error()); Code :
$search = mysql_query("SELECT * FROM $mbmembres WHERE id >= '%$word%' LIMIT 0,10") or die ("ERROR:" . mysql_error()); ![]() lol jai posté en même temps que toi ma réponse Biglo... Je m'empresse de réctifier |
|
|
00
|
|
|
#7 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Tiens tu peux aussi utiliser le BETWEEN qui renvoie les valeurs comprises entre deux limites
|
|
|
00
|
|
|
#8 | |||
|
Nouveau Membre du Club
![]() Inscription : août 2006 Messages : 217 ![]() |
J'ai rectifié mon code en supprimant les ' et % ...Effectivement maintenant ça marche !
Citation:
Sinon, je me permets de vous demander une dernière chose [sans ré-ouvrir un post] concernant l'ouverture aléatoire de fiches 'membre' Concrètement, comment faire pour afficher 10 fiches aléatoires qui se suivent? Par exemple : Quelle méthode employée pour afficher les fiches 55,56,57,...,65 et en raffraîchissant la page obtenir 4,5,6,...,14 ou encore 62,63,64,...,72 Toujours sur la base de ce code : Code :
|
|||
|
|
00
|
|
|
#9 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Voici un exemple avec between :
Code :
SELECT column_name FROM table_nameWHERE column_nameBETWEEN value1AND value2 |
|
|
00
|
|
|
#10 | |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Citation:
Code :
SELECT FLOOR(1 + RAND() * MAX(id)) FROM ta_table; |
|
|
|
00
|
|
|
#11 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Aléatoire :
moi pour ne pas se casser la tête je ferai avec le meme systeme que la pagination...Je récupère tout et je joue avec le start qui serait aléatoire et on garde le limit 10.En gros Code :
select * from tatable LIMIT $start, 10 |
|
|
00
|
|
|
#12 |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
En effet, c'est beaucoup plus simple et on peut facilement avoir toujours 10 enregistrements (en supposant que la table contienne au moins 10 lignes).
|
|
|
00
|
|
|
#13 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Oui il y a cette condition, mais au final ca fonctionnera toujours
|
|
|
00
|
|
|
#14 | |||||
|
Nouveau Membre du Club
![]() Inscription : août 2006 Messages : 217 ![]() |
Bonjour
Citation:
Code :
Code :
Mais pour l'instant mes tentatives restent peu probantes ...
|
|||||
|
|
00
|
|
|
#15 | ||
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Salut,
La requête que je t'ai donnée ne retourne pas le résultat que tu désires mais seulement un nombre "aléatoire" compris entre 1 et Max(id). Après avoir obtenu ce nombre, il faut refaire ta requête normal mais en y insérant ce nombre aléatoire. Mais il vaut mieux prendre la solution de Kerod. Seule différence pour le nombre aléatoire : il doit être compris entre 0 et le nombre d'enregistrements de ta table. Code :
|
||
|
|
00
|
|
|
#16 |
|
Nouveau Membre du Club
![]() Inscription : août 2006 Messages : 217 ![]() |
Problème résolu ! Merci de votre aide qui me permet de progresser ! @bientôt
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com