fONCTION select mysql

  • Auteur de la discussion Auteur de la discussion max6
  • Date de début Date de début
WRInaute discret
Bonjour

Je souhaiterai effectuer une requete sur ma base mysql pour rechercher tous les "mots" qui commencent de "1" a "9" dans la catégorie "ma catégorie" et les afficher sur une meme page .

J'arrive a aller chercher et afficher tous les "mots" qui commencent par 1 a 9 mais je suis obligé de créer une page pr chaque (1 a 9) la j'aimerai que tous les mots qui commencent de 1 a 9 s'affiche sur une seul page .

J'ai essayé de nombreuses requetes ms elles fonctionnent pas .

Merci
 
Nouveau WRInaute
quelque chose ds le style:

select mes_champs
from ma_table
where macategorie like '1*'
or macategorie like '2*'
or macategorie like '3*'
....

ou alors jai pas trop saisi :s
 
WRInaute discret
Merci de ta réponse .

En fait la j'ai ca :


SELECT * FROM matable where champs1 LIKE '%blabla%' AND champs2 LIKE '1%' AND '2%' AND '3%' AND '4%' AND '5%' AND '6%' AND '7%' AND '8%' AND '9%' ORDER BY champs2 .
J'ai essayé en remplacant par des OR ms ca marche pas non plus .


Je comprend pas trop ton principe en fait .... je crois pas que tu es saisi ce que je souhaitai (c'est assez difficile de se comprendre su forum).

Il faudrait que tous les "champs2" qui commencent soit par 1 ou 2 ou 3 ou 4 etc ... soit affiché dans la meme page ...

Ensuite sur les pages suivantes ca ne pose pas de soucis puisque ce sont des lettres , a ,b , c ,d , etc ....

Je pense que la j'ai été plus précis .
 
WRInaute discret
Merci pr vos réponses !


Mais ca ne fonctionne pas plus !

En fait la il me sort ts les résultats meme ceux qui ne commencent pas par 0 1 2 3 .....9

Je comprend vraiment pas pourquoi .

J'ai la requete count qui est la suivante :
$sql = "SELECT count(*) titre FROM listing WHERE titre REGEXP '^[0-9]' AND genre LIKE '%action%'";

et l'autre c'est :
$sql = "SELECT titre FROM listing WHERE titre REGEXP '^[0-9]' AND genre LIKE '%action%' ORDER BY titre LIMIT $debut,$nb_affichage_par_page"

C prise de tete les select !
 
WRInaute occasionnel
C'est normal que tous les résultats soient affichés si la suite des résultats est 10blabla, 11blabla ...
Essaie ça :
$sql = "SELECT count(*) titre FROM listing WHERE titre REGEXP '^[0-9][a-z]' AND genre LIKE '%action%'";
si ton champ titre est du type XXblabla
avec XX un chiffre et blabla une ou des lettres de a à z.
Par contre, si tu as quelque chose comme XX_blabla
avec _ un catactère bien déterminé, alors essaie ça :
$sql = "SELECT count(*) titre FROM listing WHERE titre REGEXP '^[0-9]_' AND genre LIKE '%action%'";

Je sais, c'est pas clair :oops:
 
WRInaute discret
Par exemple j'ai des films qui s'appel :

2 fast 2 furious
100 girls
....
.....

Ces titres sont placés ddans un champ titre mysql .

Je veus que ca s'affiche sur la meme page dans l'ordre et par catégorie (action , aventure , etc ...)

Par exemple : Je recherche tous les films qui commencent par 1 et 2 et 3 et 4 .......et 9
de la catégorie "action" et je les affiche par ordre alphabétique .

Mon classement alphabétique est comme ca :

0-9 | a | b | c | ......| z

et c'est ce 09 qui me pose problemes .

J'ai essayé tes requetes mais elles fonctionnent pas non plus , ca affiche tout , ca ne trie pas !

J'ai aucuns prolemes pourtant avec les autres lettres , juste ac les 09 .

Sinon j'ai la solution de créer une page pour 1 , une page pour 2 , etc ... mais comme il y'a peu d'enregistrements qui commencent par des chiffres , c'est mieux de les mettres dans la meme page ....

J'ai jms autant perdu de tps ac des requetes select ! incroyable !
 
WRInaute impliqué
Essaie ça pour voir (c'est le champ "titre" qui doit gêner)

Code:
$sql = "SELECT count(*) AS nb_titre FROM listing WHERE titre REGEXP('^[0-9]') AND genre LIKE '%action%'
 
WRInaute discret
Merci de vos réponses ,j'ai cependant trouvé quelque chose qui fonctionne bien :

SELECT * FROM listing where genre like '%action%' AND LEFT(titre,1) IN('0','1','2','3','4','5','6','7','8','9')

Voila
Merci
 
Discussions similaires
Haut