Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pages : 1
Bonsoir 
J'ai vraiment besoin de votre aide pour un problème à se taper la tête contre les murs 
Je vous explique : je voudrais faire un listing des discussions dans un forum précis. Après quelques rapides modifs du viewforum, j'y arrive. Problème, quasi toutes les discussion commencent par [Blabla].
Je voudrais donc supprimer ces crochets afin de n'avoir que le titre de la discussion..
J'y arrive plus ou moins avec une expression régulière.
Re-Problème
! Les discussions sont ordonnées à partir du titre issu de la BDD, c'est à dire avec les balises, donc l'ordre quand elles sont enlevées n'est plus du tout bon.
Il faudrait donc, je pense, si c'est possible, supprimer depuis la requêtes ces balises, et afficher le titres des topics.
Merci d'avance pour vos réponses...
Sinon je posterais sur un forum spécialisé PHP en général, mais comme il s'agit de requêtes FluxBB je me suis dit que vous pourriez m'aider 
@+
adaur
Hors ligne
Le plus simple serait de la supprimer à l'affichage en PHP avec un
preg_replace('pattern', '', $subject)Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Merci pour cette réponse 
Suite du topo 
A partir de ce que me donne Fanf, je fais ceci:
$subject2 = preg_replace('`\[[^]]*]`', '', $subject);Et je mets en echo le subject2 au lieu de subject.
Cela supprime tout ce qui est entre crochets.
Très bien, mais maintenant, cela conserve l'ordre du titre d'origine, avec les crochets.
J'ai essayé divers moyens pour trier par ordre alphabétique $subject2, mais rien a faire.
Auriez vous une solution ? 
Hors ligne
Essaie de modifier le ORDER dans la requête SQL, de manière à lui demander à trier par sujet sans les balises (je crois que c'est possible).
Par contre j'ai du mal à voir à quoi servent ces balises si tu ne veux ni les afficher ni qu'elles apparaissent dans le tri. Autant mettre cette informations dans un autre champ.
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Essaie de modifier le ORDER dans la requête SQL, de manière à lui demander à trier par sujet sans les balises (je crois que c'est possible).
Justement, j'ai cherché, et n'ai pas trouvé 
Je regarde ça plus en détail, mais ça me parait bien obscure 
Par contre j'ai du mal à voir à quoi servent ces balises si tu ne veux ni les afficher ni qu'elles apparaissent dans le tri. Autant mettre cette informations dans un autre champ.
Ce sont des choses comme Suggestion, Idée...
J'aimerais donc les supprimer, mais elles sont utiles dans le viewforum 
Hors ligne
Essaie ça
ORDER BY IF(subject REGEXP '^[\[*.\]]*.', RIGHT(subject, CHAR_LENGTH(subject)-LOCATE(']', subject)), subject)Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Essaie ça
ORDER BY IF(subject REGEXP '^[\[*.\]]*.', RIGHT(subject, CHAR_LENGTH(subject)-LOCATE(']', subject)), subject)
C'est hyper sympa d'essayer, malheureusement il n'a pas l'air d'aimer le ] :
Parse error: syntax error, unexpected '[' in ...
Si tu n'as pas envie de plus t'embêter (et que je te comprendrais
), j'ai lancé un topic de demande d'aide sur le site du zéro.
Hors ligne
La requête fonctionne nickel chez en SQL pur, vérifie qu'il n'y a pas de soucis d'ouverture / fermeture de ' une fois assemblée avec du PHP 
EDIT
$sql = 'SELECT u.id AS has_posted, t.id, t.subject, t.poster, g.g_color FROM '.$db->prefix.'topics AS t LEFT JOIN '. $db->prefix .'users AS u ON t.poster = u.username LEFT JOIN '. $db->prefix .'groups AS g ON u.group_id = g.g_id WHERE t.forum_id='.$id.' ORDER BY ORDER BY IF(subject REGEXP "^[\[*.\]]*.", RIGHT(subject, CHAR_LENGTH(subject)-LOCATE("]", subject)), subject)';Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Ca commence vraiment a rendre bien 
Seul pb restant, ça me fait plusieurs classement suivant qu'il y ai une ou plusieurs "balises", je vois pas pourquoi O_O
Cependant, c'est exactement le résultat que j'attendais, merci 
Hors ligne
Parce que le code est fait pour des titres avec une seule balise, il aurait fallu que tu précise qu'il peut y en avoir plusieurs.
Il faudrait trouver une fonction SQL pour remplacer "LOCATE" de façon à ce qu'elle cherche la dernière occurrence de "]".
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Pages : 1