Formulair comment enregistrer une ligne.

ViPHP
AB
ViPHP | 5818 Messages

22 janv. 2007, 04:27

Bonsoir,

Si je t'ai bien suivi Ajoloca, la meilleure méthode pour éviter cet inconvénient serait donc pour Arno, s'il est hébergé sur un serveur linux:
$tab = explode("\n", $_POST['ajout_ligne']);
Car
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/>
    <title>ess.php</title>
</head>
<body>
<?php
    $chaine="Premi&egrave;re ligne\nune ligne vide\n\nune autre ligne\n";
    $tab = explode("\n", $chaine);
	
	echo '<pre>';
    print_r($tab);
    echo '</pre>'; 
?>
</body>
</html>
donne à l'exécution

Code : Tout sélectionner

Array ( [0] => Première ligne [1] => une ligne vide [2] => [3] => une autre ligne [4] => )
Ce qui voudrait dire que ma première réponse confirmée par Ultim4T0m et Jules Petibidon était la plus appropriée pour un serveur linux. Et qu'un maximum de compatibilité serveur proposé par le code d'Albat puis par Truc possède cependant quelques inconvénients?

ViPHP
ViPHP | 1961 Messages

22 janv. 2007, 13:50

Bonjour,

Personnellement, je préfère les solutions génériques (utilisables par tout)
Bien que je n'ai pas compris l'utilité de l'écrire sur plusieurs enregistrements,
voici une solution qui fonctionne quel que soit le système.
La chaine contient des \n\r des \n et \r
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
	<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/>
	<title>ess.php</title>
</head>
<body>
<?php
	function my_nl2br($str){
		$nl = Array("\n\r", "\n", "\r");
		return str_replace($nl, '<br />', $str);
	}
	$chaine="Premi&egrave;re ligne\nune ligne vide\n\nune ligne\n\rune autre\ret la derni&egrave;re";
	$chaine_br = my_nl2br($chaine);
	echo htmlentities($chaine_br);
	$tab = explode('<br />', $chaine_br);
	var_dump($tab);
	echo '<pre>';
	print_r($tab);
	echo '</pre>';
?>
</body>
</html>
et le résultat est

Code : Tout sélectionner

Premi&egrave;re ligne<br />une ligne vide<br /><br />une ligne<br />une autre<br />et la derni&egrave;re array 0 => string 'Premi&egrave;re ligne' (length=21) 1 => string 'une ligne vide' (length=14) 2 => string '' (length=0) 3 => string 'une ligne' (length=9) 4 => string 'une autre' (length=9) 5 => string 'et la derni&egrave;re' (length=21) Array ( [0] => Première ligne [1] => une ligne vide [2] => [3] => une ligne [4] => une autre [5] => et la dernière )
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 136 Messages

25 févr. 2007, 15:31

Bonjour,

sous quelle forme je doit mettre ca pour que les ligne une par une s'ajoute dans ma bdd je bloque depuis quelque jours je vous remerci pour votre aide. ;)

ViPHP
ViPHP | 1961 Messages

25 févr. 2007, 17:16

Bonjour,

Je me répète, mais j'ai toujours pas compris l'intérêt de faire de chaque ligne un enregistrement mais si c'est vraiment ce que tu veux faire il te suffit de faire une boucle sur le tableau et un insert par poste.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 136 Messages

25 févr. 2007, 19:02

C est pour enregistrer plusieur donner en meme temps plutot que de le faire une par une.

tu ma dit ca:
il te suffit de faire une boucle sur le tableau et un insert par poste.

merci de m'avoir repondu mes ca ne m'aide pas plus se que ca ;)

Eléphant du PHP | 136 Messages

28 févr. 2007, 19:19

Quelqu un pourrais t il m'aider ??? je vous remercie ;)

Eléphant du PHP | 136 Messages

05 mars 2007, 12:54

Personne ne peut m aider ??? je vous remerci. ;)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

05 mars 2007, 18:28

Modération :
Arno76, les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

05 mars 2007, 18:29

Tant qu'à faire un up fait en un mais montre nous que tu as essayé d'avancer de ton coté.
Où en est le code ?
C'est quoi la question ?
Un topo rapide quoi...

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 136 Messages

06 mars 2007, 11:57

Merci de la reponse,

Voici ou je suis actuellement...
<?php 
    function my_nl2br($str){ 
        $nl = Array("\n\r", "\n", "\r"); 
        return str_replace($nl, '<br />', $str); 
    } 
    $chaine="Premi&egrave;re ligne\nune ligne vide\n\nune ligne\n\rune autre\ret la derni&egrave;re"; 
    $chaine_br = my_nl2br($chaine); 
    echo htmlentities($chaine_br); 
    $tab = explode('<br />', $chaine_br); 
    var_dump($tab); 
    echo '<pre>'; 
    print_r($tab); 
    echo '</pre>'; 
?> 
et je souhaiterai juste savoir comment intergrer ca dans ma bdd ligne par ligne merci ;)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

06 mars 2007, 22:53

Ajoloca t'a indiqué coment faire... une boucle sur $tab

Très grossièrement :
for ($i=0; count($tab); $i++
{
     mysql_query("INSERT .... (".$tab[$i].")");
}

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute