PDA

View Full Version : Retaining line breaks when data comes back out of mysql?


Quarterbore
05-21-2006, 03:24 PM
I have a project I am working on and I have data saved in my database that has line breaks retained. My problem is that when I go through and pull the row of data from my database and put the cells into a $variable I no longer have the line breaks....

As an example:

$name=$row[name];
$seasons=$row[seasons];

Assuming that $seasons is a list of seasons with line breaks or white space to format the output... what command do I need so that the output will retain line breaks?

Thanks!

Adrian Schneider
05-21-2006, 04:06 PM
Setting one variable equal to another will not change the original content... My guess is your line breaks are "\n" (whitespace) and not HTML breaks - so when you output it, they are ignored. Look at the nl2br (http://php.net/nl2br) function - this will add in <br /> with each new line.

Edit: alternatively, you can wrap your output in <pre> ... </pre> to retain whitespace.

Quarterbore
05-21-2006, 04:19 PM
My issue is that I am trying to reuse data entered by another script...


THANK YOU!!! The nl2br function was what I needed!!!

Quarterbore
05-22-2006, 11:54 PM
OK, I am close but not quite there yet...

From the help above I have been able to export my data from my database to a php page and the text is retainining line breaks. Following is an example of what the data looks like:

File 1

while ( $row= mysql_fetch_array($result) ) {
$test = nl2br($row['test']);
}
echo $test;


Will give me a result that looks like:

One
Two Three
Four Five Six


Now what I need to do is create a page that will allow me to edit my values in my script as follows:

File 1 (Later in the code)

<form action="updatetest.php" method="post">
<textarea rows="10" cols="30" name="updatetest" wrap="physical"><?php echo $test ?></textarea><br />
<INPUT type="submit" value="Update Test"> <INPUT type="reset">
</form>


So, to finish this I know I need to create a new PHP file named updatetest.php and that the value that I will be receiving is $updatetest.

What I can not figure out for the life of me is what do I need to do to get the output variable posted from in File #1 to retain the line breaks (\n) when the gets to my second file so that my second file can do a mysql UPDATE....

The line breaks are critical for my project as the values I am updating are lists of items.

Thanks for any advise!

Adrian Schneider
05-23-2006, 12:35 AM
Quarterbore, I'm not really sure what you are asking. If you want to chat about it (easier to solve problems in real time), you can find my contact info in my profile.

Quarterbore
05-23-2006, 01:12 AM
Well, I can describe it better....

I have a Database I am building that serves up information to a Timeshare Resorts Database as in the following link:

http://www.timeshareforums.com/resortsdatabase.php?resort=1

Before I added the nl2br function my text was running on (no line breaks) but as you can see it is all formated now. What I need to do is create a script that will allow me to edit the data as there are too many errors in the data for me to use phpmyadmin to correct them.

The database was actually created using vBaLinks but the vBaLinks program was too limiting for me to use the data as I want so I created a new database with my resort information and now I am trying to flesh out the rest of the tools I need to edit and serve up the data.

Also, does anybody suggest a good MYSQL book? I have a few PHP books but I really need to buy a good MYSQL book to help me get through these issues...

Edit:

Here is a sample page:


http://www.timeshareforums.com/editresortsdatabase.php?resort=300

The code is set such that the value in the RCI Season info comes from this:


RCI Season Info<br>
<textarea rows="15" cols="30" name="uprstrciseas" wrap="physical"><?php echo $rstrciseas1 ?></textarea><br />


It is POSTED to my second page as: $uprstrciseas and when you click the "Update" you see that I lose the line breaks...

Note: This is not updating anything in my database as obviously if it were I would have this locked down...

My full output template looks like the following so you can see the data I am working with:

http://www.timeshareforums.com/resortsdatabase.php?resort=300

When I am done I hope to integrate this into my vB system to asign edit permissions and the like but as of now it is a stand alone application to keep in "simple"

OK, I talked with a SQL developer at work and he gave me a hint that seems to have solved my problems.... To send a $variable and retain the line breaks it is necessary to convert it to html before passing the value via a POST command...

For example:


$variable = addslashes(htmlspecialchars($_POST['variable]));


When the value is received, I then need to undo the changes in the posted value using the following code:


nl2br($_POST['uprstrciseas']);


Amazing.... I spent hours searching every book I have to figure this out and he spit it out like it was common knowledge :eek:

This was a major victory but it is rather anti-climatic that two lines of code that are that short were all I needed... Now I can work on programing the rest of my page... WOW!