inserer un retour à la ligne dans un champ mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : inserer un retour à la ligne dans un champ mysql

par Ryle » 27 juin 2006, 13:50

Yapadkoi :)

par BaLiSTiK » 27 juin 2006, 13:46

pour le ? en plus javais remarqué :D
j ai bien mis le nl2br a l endroit indiqué et ça marche nickel =), apres j ai juste un ti reglage dans l affichage et ça sera nickel.
thanks ;)

par Ryle » 27 juin 2006, 13:38

Y a pas de soucis pour le tableau, il te suffit juste de remplacer ton $tab["quote"] par nl2br($tab["quote"]) pour qu'il remplace les retours à la ligne de la base par des <br> html :)

Celà dit, tu ne devrais mettre du php que là où c'est vraiment nécessaire, ça allegerait ton code et en simplifierait la lecture :) (en l'indentant en plus tu verrais par exemple qu'il manque un </td>, et qu'il y a un ? en trop qui traine dans une balise ;))

Suggestion :
<? while($tab = mysql_fetch_assoc($req)) { ?> 
<table width=400 border="0" cellspacing="0" cellpadding="0"> 
  <tr>
    <td background="http://balistik35.free.fr/bordel/images/menu.jpg"> 
      <b>Numero de quote :</b> <?php echo $tab["id_quote"]; ?> 
      <b>posté par</b> <i><?php echo $tab["blaze"]; ?></i><br>
    </td>
  </tr>
  <tr>
    <td BGCOLOR="#d8dde7" bordercolor="#d8dde7">
      <?php echo nl2br($tab["quote"]); ?>
    </td>
  </tr>
</table>
<br>
<? } ?> 

par BaLiSTiK » 27 juin 2006, 13:04

le \n est normalement suffisant dans mysql pour générer un
En revanche si tu veux afficher le résultat dans une page html, il te faut faire un nl2br pour remplacer les \n de mysql par des <br />
ça met bien à la ligne dans le champ de la BDD. Comme tu disais il faut faire le nl2br, mais la j avoue que je saisi pas trop :/

mon script pour afficher le contenu de la table :
<?php
$con = mysql_connect("sql.free.fr","login","pass");
mysql_select_db("login", $con);
$sql = "select * from quote order by id_quote desc";
$req = mysql_query( $sql );
while($tab = mysql_fetch_assoc($req)){
?>
<table width=400 border="0" cellspacing="0" cellpadding="0">
  <tr><td background="http://balistik35.free.fr/bordel/images/menu.jpg">
<?php
echo '<b>Numero de quote :</b> '.$tab["id_quote"].' <b>posté par </b><i>'.$tab["blaze"].'</i><br> </tr>';
echo '<TR><TD BGCOLOR="#d8dde7" bordercolor="#d8dde7"?>'.$tab["quote"].'</TD></tr></table><br>';
} 
?>
j ai inséré des balise de tableau pour faire un affichage un peu special ^^.

par Ryle » 27 juin 2006, 12:38

le \n est normalement suffisant dans mysql pour générer un retour à la ligne (le \t place juste une tabulation devant en plus)

Ton code devrait donc fonctionner :
$_POST["qu"] = eregi_replace ("<","\n[ ",$_POST["qu"]); 
(s'il te remplace le < par [, y a pas de raison qu'il ne mette pas le \n devant :))

En revanche si tu veux afficher le résultat dans une page html, il te faut faire un nl2br pour remplacer les \n de mysql par des <br />

par BaLiSTiK » 27 juin 2006, 12:29

j ai essayé comme ça et ce n est toujours pas ça :/

par Invité » 27 juin 2006, 11:26

$_POST["qu"] = eregi_replace ("<","\t\n[ ",$_POST["qu"]);
de cette façon? ou alors autre chose?

par Ben-J » 27 juin 2006, 11:14

\t\n si mes souvenirs sont bons... je crois en effet me souvenir d'un post sur le sujet dans ce forum.

inserer un retour à la ligne dans un champ mysql

par BaLiSTiK » 27 juin 2006, 11:03

Bonjour, j ai un petit soucis mais qui m'embete un peu.
J'ai fais un 'tit formulaire afin de quoter des extrait d'IRC (comme le site bashfr.org) et le soucis est que je cherche a faire un retour à la ligne.

exemple :
je rentre dans mon formulaire ceci :
<perso1>salut
<perso2>ça va?

ça m affichera : [ perso1] salut [ perso2 ] ça va?

mon script d insertion :
$con = mysql_connect("sql.free.fr","login","pass");
mysql_select_db("login", $con);
$_POST["qu"] = eregi_replace ("<","[ ",$_POST["qu"]);
$_POST["qu"] = eregi_replace (">"," ] : ",$_POST["qu"]);

$quote = $_POST["qu"];
$blaze = $_POST["bl"];
$insert = "INSERT INTO `quote`(`blaze`, `quote`) VALUES('".$blaze."','".$quote."')";
mysql_query($insert) or die(mysql_error());
mysql_close();
donc script tt simple. J ai essayé en intégrant une balise <br> dans le 1er eregi_replace mais rien. Essayer avec un "\n" et idem.
la je suis un peu a court d'idée pour inserer un saut de ligne entre chaque phrase.
merci