Bonjour à tous !
Je cherche une regex ( que j´ai essayée de faire ) qui remplace les < img src="image.gif" alt=""> par [img]image.gif[/img].
Sinon , comment fait t-on pour créer une page ou l´on peut réordonner ses entrées dans la table ( comme dans re-order forums de IPB ) ? ??
Encore merci ; )
Pour l´expression régulière ![]()
$message = preg_replace(´!\[img\](.+)\[/img\]!isU´, ´<img src="$1" border="0" alt="Img Posteur"></img>´, $message);
Si la variable $message contient [img]url_de_l´img[/img], elle sera remplacée par < img src="url_de_l´img" border="0" alt="Img Posteur">
J´ai pas trop compris la secondes question ![]()
Justement je veux faire l´inverse
.
Pour la 2e question :
Je m´explique , sur IPB 1.3 , dans le PC admin , on peut réorganiser l´ordre des forums comme le montre la capture d´écran ci dessous :
http://img122.echo.cx/my.php?image=reorder9ap.jpg
J´aimerais faire pareil avec mon système d´articles , simplement je ne vois pas comment faire ( j´ai réfléchi à ça toute la soirée . .. ) .
Dsl pour la regex
Tu pourra surement trouver de l´aide sur
http://www.expreg.com/
Si j´ai bien compris, tu veut avoir un système qui permette d´organiser l´ordre de tes articles?
Par exemple, monter un lien qui mène vers un article, ou le descendre, sans changer la position des autres ![]()
Oui voila , ou tout simplement pouvoir changer leur id a tous d´un coup !
Pour la regex , je suis déja passé par la ![]()
Je sais pas si ça peut t´aider, mais j´ai fait un système qui permet de faire cela ![]()
Tu pourra surement en trouver des meilleurs
En fait, mes pages ont un champ de plus nommé " pos".
Quand j´ajoute une page, je regarde quel est la valeur maxi du champ " pos" et je rajoute 1 à cette valeur.
Elle sera pour la nouvelle page
Avec ce système le champ pos est du style:
1, 2, 3, 4, 5, 6...
Quand je veut supprimer une page je récupère sa valeur au champ " pos", puis modifie le reste pour avoir un suite.
Par exemple avec la page qui a la position 3, les chiffres 4, 5, 6 devient 3, 4, 5.
Une fois l´article supprimer, j´ai bien une suite 1, 2, 3, 4, 5,... ect
Pour changer la position, il faut cliquer sur un lien ( monter ou descendre).
La requête va permettre de changer la valeur de " pos" des deux liens en question
Pour afficher selon l´ordre voulu, j´ai fait un ORDER BY pos
C´est loin d´être la meilleure solution mais si ça peut t´aider ![]()
XDav -> Je ne vois pas d´autre solution, ça me semble donc la meilleure ![]()
Ensuite, faut voir si tu as fait du beau code, mais c´est autre chose ![]()
Hum , ça m´intéresse , vasy file le code ![]()
Le code est dispo sur
http://xdav.net/jv.code
Dès que j´ai le temp, je le commenterai ![]()
Comme tu vas le voir, il est en relation avec les menus.
Il faudra donc l´adapter à ton application que tu souhaite.
Le code qui t´intéresse commence à la ligne 20
( sans compter la fonction F5())
Il existe bien une autre solution, mais le concept etait assez complexe...
Par contre l´avantage qu´il avait, c´est qu´il n´y avait pas besoin de changer toutes la valeur du champ " pos". ( D´ailleur il n´y avait pas besoin de champs supplémentaire)
Cette requête sera lente dès qu´il y aura beaucoup de pages...
Dommage ![]()
Ouaih meric bah j´vais essayer de l´adapter à mon code que voici :
< ? $titrepage = " Administration des dossiers/articles"; ? >
< ? include ( "../header.php"); ? >
< ? include ( "../menu.php"); ? >
< ? require_once ( "../conf.php"); / / Inclusion du fichier de fonctions IPB SDK
/ / Nous sommes connecté, retrouvons les infos du membre
$info = get_info();
/ / Génération du contenu de la barre
$member_name = $info[´name´];
if ( is_admin()) {
? ><center>
< font face=arial size=4>
< b> Gérer les dossiers/articles < /b></font>
< br>
< br>
< b> > > Actions</b><br><br>
< a href="ajoutB.php">Ajouter un dossier/article < /a><br><br>
< font face=arial size=2><b> > > Liste des dossiers/articles présents :</b></font><br><br>
< table border=1 cellpadding="2">
< ?
mysql_connect("$host", " $login", " $pass");
mysql_select_db("$login");
if ( isset($_POST[´type´]) AND isset($_POST[´titre´]) AND isset($_POST[´auteur´]) AND isset($_POST[´contenu´]))
{
if ( $_POST[´id_dossier´] == 0)
{
/ / TRAITEMENT DU TEXTE
$contenu = htmlentities($contenu); / / pas de html ! !!!
$contenu = nl2br($contenu); / /
$contenu = preg_replace(´!\[b\](.+)\[/b\]!isU´, ´<b>$1</b>´, $contenu);
$contenu = preg_replace(´!\[u\](.+)\[/u\]!isU´, ´$1´, $contenu);
$contenu = preg_replace(´!\[i\](.+)\[/i\]!isU´, ´<i>$1</i>´, $contenu);
$contenu = preg_replace(´!\[spoiler\](.+)\[/spoiler\]!isU´, ´<span style="color:red">SPOILER [</span><span style="color:#C4C4C4">$1</span><span style="color:red">]</span>´, $contenu);
$contenu = preg_replace(´!\[img\](.*)\[\/img\]!isU´,´<img src="$1" alt="">´,$contenu);
/ / Ce n´est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO dossiers VALUES(´´, ´" . $type . " ´, ´" . $titre . " ´, ´" . $auteur . " ´, ´" . $contenu . " ´)") or die(mysql_error());
echo ´<meta http-equiv="REFRESH"
content="1;URL=´.$site.´/dossiers/redirection.php"
´;
}
else
{
/ / C´est une modification, on met juste à jour tout les champs
/ / TRAITEMENT DU TEXTE
$contenu = htmlentities($contenu); / / pas de html ! !!!
$contenu = nl2br($contenu); / /
$contenu = preg_replace(´!\[b\](.+)\[/b\]!isU´, ´<b>$1</b>´, $contenu);
$contenu = preg_replace(´!\[u\](.+)\[/u\]!isU´, ´$1´, $contenu);
$contenu = preg_replace(´!\[i\](.+)\[/i\]!isU´, ´<i>$1</i>´, $contenu);
$contenu = preg_replace(´!\[spoiler\](.+)\[/spoiler\]!isU´, ´<span style="color:red">SPOILER [</span><span style="color:#C4C4C4">$1</span><span style="color:red">]</span>´, $contenu);
$contenu = preg_replace(´!\[img\](.*)\[\/img\]!isU´,´<img src="$1" alt="">´,$contenu);
mysql_query("UPDATE dossiers SET type=´" . $type . " ´ , titre=´" . $titre . " ´ , auteur=´" . $auteur. " ´, contenu=´" . $contenu. " ´ WHERE id=" . $_POST[´id_dossier´]);
echo ´<meta http-equiv="REFRESH"
content="1;URL=´.$site.´/dossiers/redirection.php"
´;
}
}
if ( isset($_GET[´supprimer_dossier´])) / / Mais si on veut supprimer un dossier
{
/ / Et ben on supprime le dossier indésirable
mysql_query(´DELETE FROM dossiers WHERE id=´. $_GET[´supprimer_dossier´]);
}
$retour = mysql_query(´SELECT * FROM dossiers ORDER BY id DESC´);
while ( $donnees = mysql_fetch_array($retour)) / / Une petite boucle qui affiche tous les dossiers
{
? >
< tr><td>
< font face="arial" size=2><b><? echo $donnees[´titre´] ? ></b> < /td><td> -
< a href="ajoutB.php?modifier_dossier=<? echo $donnees[´id´] ? >" title="Modifier ce dossier/article">Modifier</a> -
< a href="liste.php?supprimer_dossier=<? echo $donnees[´id´] ? >" title="Supprimer ce dossier/article">Supprimer</a></font><br> < /td></tr><?
} / / Fin de la boucle !
? ></table>
< ?
}
else {
echo " <center><font face=verdana size=2>Vous n´êtes pas autorisé à afficher cette page ! </font></center>";
}
? ></center>
< ?
include ( "../footer.php");
? >
Zorro56
Posté le 29 juin 2005 à 20:02:15
Ouaih meric bah j´vais essayer de l´adapter à mon code que voici:
De rien
Essaye de l´adapter sans com, au pire, j´essayerai de simplifer le code en enlevant les menus et en rajoutant les com si j´ai le temps ![]()
Oula c´est chaud :p enfin bon j´continue !
Ah , autre chose , j´ai mis des quizz sur mon site , dès qu´un membre l´a fini , ça lui affiche sa note et ça l´enregistre dans une table quizz .
Je me retrouve donc avec ce genre d´entrées :
Zorro56 13
Webhead 12
acid snake 3
Zorro56 15
Zorro56 15
Et j´aimerais faire un top 10 des meilleurs quizzeurs ! Pour cela j´ai l´idée ( additioner tous les champs note ou le pseudo est le même ) pour obtenir par exemple :
Zorro56 43
Webhead 12
acid snake 3
Simplement je ne vois pas quelle requête utiliser !
Encore merci ![]()
Tu peut utiliser une requête du style
mysql_query("SELECT * FROM ta_table ORDER BY ton_champ_qui_contient_les_notes_additionnées DESC LIMIT 0,10");
non, en fait il veut additionner le résultats dans la requête.
Quelque chose du genre :
SELECT Nom, SUM(note) AS score FROM table GROUP BY Nom
?
Oui , c´est plutot ça !
Ma table score à un id ( normal ) , un champ pseudo et un champ score !
J´ai donc mis ça :
mysql_query("SELECT pseudo SUM(score) AS total FROM quizz GROUP BY pseudo") or die(mysql_error());
Et l´erreur me retourne :
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ´SUM(score) AS total FROM quizz GROUP BY pseudo´ at line 1
Je continue de plancher sur ce problème ; )
Arf , je ne trouve toujours pas :´(
Mets une virgule après SELECT pseudo.
Merci ça marche sauf qu´il me met le plus nul tout en haut et le plus bon tout en bas . Moi je veux que ce soi l´inverse ( logique ) donc je mets un DESC à la fin mais la : erreur dde syntaxe Mysql !
$reponse = mysql_query("SELECT pseudo, SUM(score) AS total FROM quizz GROUP BY pseudo ORDER BY total LIMIT 0,6") or die(mysql_error());
Mets le DESC juste après le ORDER BY total, et non pas à la fin de la requête.