MySQL enter wegschrijven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis

Dennis

10/02/2007 20:26:00
Quote Anchor link
Beste mensen,
Ik ben met een gastenboek bezig die icm MySQL werkt.
Zoals in alle gastenboeken kan je grote teksten wegschrijven, hiervoor heb ik in m'n tabel "bericht" aangemaakt met als type "LONGTEXT".

Als ik met een textarea wat tekst schrijf met hier en daar wat enters, zet hij de enters niet in de database. Het gevolg hiervan is als je de data weer ophaalt, dat je 1 lange zin krijgt.
Het is dus de bedoeling dat waar diegene enters in de textarea zet, die deze ook wegschrijft in de database zodat als je het bericht ophaald ook enters op de goede plaatsen staan en, zoals eerder gezegt, niet 1 lange zin word :)

mvg,
Dennis
 
PHP hulp

PHP hulp

20/11/2024 03:33:19
 
Arjan Kapteijn

Arjan Kapteijn

10/02/2007 20:28:00
Quote Anchor link
nl2br() toevoegen als je de gegevens uit je database trekt.
 
Dennis

Dennis

10/02/2007 20:53:00
Quote Anchor link
Lijkt mij niet dat dat zo makkelijk werkt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
require("config.php");

$select = "SELECT * FROM gastenboek";
$query = mysql_query($select);

while ($list = mysql_fetch_object($query))
{

echo"
    <table style=\"width: 100%\" cellspacing=\"0\" cellpadding=\"0\">
    <tr>
        <td background=\"../images/menu_top.jpg\" height=\"21\" class=\"left_content\">&nbsp; Door <B>$list->naam</B> op $list->date</td>
    </tr>
    <tr>
        <td class=\"left_content\">


///////// HIER HAALT HIJ DE GEGEVENS OP
$list->bericht
///////// HIER HAALT HIJ DE GEGEVENS OP


        </td>
    </tr>
    <tr>
        <td background=\"../images/menu_bottom.jpg\" height=\"17\" class=\"left_content_end\">&nbsp;</td>
    </tr>
</table><BR>"
;
}


?>
Gewijzigd op 01/01/1970 01:00:00 door Dennis
 
Arjan Kapteijn

Arjan Kapteijn

10/02/2007 20:54:00
Quote Anchor link
nl2br($list->bericht)
 
Frank -

Frank -

10/02/2007 21:02:00
Quote Anchor link
Offtopic: Even een paar vraagjes over jouw scriptje:
- Waarom controleer je niet of de query wel is gelukt? Deze kan altijd mislukken, je mag dus nooit aannamen dat het wel goed gaat.
- $query is een uiterst ongelukkige naam, er staat namelijk helemaal geen query in deze variabele, er staat een result-set in. $result is dus een veel betere naam en voorkomt hele knullige bugs in je systeem.
- Waarom gebruik je de functie mysql_fetch_object() ? Dit is veruit de langzaamste fetch-functie. Gebruik bv. mysql_fetch_assoc(), dat is net zo eenvoudig in het gebruik ( $list['bericht'] en stukken sneller.
- Waarom dubbele quotes gebruiken bij echo, dan moet je alle dubbele quotes in de html-tags gaan escapen. Het gebruik van enkele quotes maakt de boel een stuk overzichtelijker en je maakt minder fouten.
 
Niek s

niek s

10/02/2007 21:02:00
Quote Anchor link
Zo dus

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
require("config.php");

$select = "SELECT * FROM gastenboek";
$query = mysql_query($select);

while ($list = mysql_fetch_object($query))
{

echo"
    <table style=\"width: 100%\" cellspacing=\"0\" cellpadding=\"0\">
    <tr>
        <td background=\"../images/menu_top.jpg\" height=\"21\" class=\"left_content\">&nbsp; Door <B>$list->naam</B> op $list->date</td>
    </tr>
    <tr>
        <td class=\"left_content\">


nl2br($list->bericht);


        </td>
    </tr>
    <tr>
        <td background=\"../images/menu_bottom.jpg\" height=\"17\" class=\"left_content_end\">&nbsp;</td>
    </tr>
</table><BR>"
;
}

?>
 
Dennis

Dennis

10/02/2007 21:04:00
Quote Anchor link
Frank schreef op 10.02.2007 21:02:
Offtopic: Even een paar vraagjes over jouw scriptje:
- Waarom controleer je niet of de query wel is gelukt? Deze kan altijd mislukken, je mag dus nooit aannamen dat het wel goed gaat.
- $query is een uiterst ongelukkige naam, er staat namelijk helemaal geen query in deze variabele, er staat een result-set in. $result is dus een veel betere naam en voorkomt hele knullige bugs in je systeem.
- Waarom gebruik je de functie mysql_fetch_object() ? Dit is veruit de langzaamste fetch-functie. Gebruik bv. mysql_fetch_assoc(), dat is net zo eenvoudig in het gebruik ( $list['bericht'] en stukken sneller.
- Waarom dubbele quotes gebruiken bij echo, dan moet je alle dubbele quotes in de html-tags gaan escapen. Het gebruik van enkele quotes maakt de boel een stuk overzichtelijker en je maakt minder fouten.


Zo ben ik het gewent... zal wel een nettere manier aanleren :)
Ben het momenteel aan het aanpassen, maar het gaat natuurlijk fout als je $list['bericht'] gebruikt onder echo ''; Zal effe verder kijken

@ Niek:
Dit werkt niet helemaal. Je krijgt als resultaat:

Door op 2007-02-10 20:58:35
nl2br(xcv xcv xc xcv )

waar die xcv xcv staat moeten enters komen, die staan er niet...
Ik heb ookal met echo's gespeelt:
http://djdenz.dj.funpic.de/gastenboek/gastenboek.php
Gewijzigd op 01/01/1970 01:00:00 door Dennis
 
Joren de Wit

Joren de Wit

10/02/2007 21:28:00
Quote Anchor link
De php functie moet je natuurlijk wel buiten quotes zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
require("config.php");

$select = "SELECT * FROM gastenboek";
$query = mysql_query($select);

while ($list = mysql_fetch_object($query))
{

echo"
    <table style=\"width: 100%\" cellspacing=\"0\" cellpadding=\"0\">
    <tr>
        <td background=\"../images/menu_top.jpg\" height=\"21\" class=\"left_content\">&nbsp; Door <B>$list->naam</B> op $list->date</td>
    </tr>
    <tr>
        <td class=\"left_content\">


"
. nl2br($list->bericht) ."


        </td>
    </tr>
    <tr>
        <td background=\"../images/menu_bottom.jpg\" height=\"17\" class=\"left_content_end\">&nbsp;</td>
    </tr>
</table><BR>"
;
}

?>
 
Dennis

Dennis

10/02/2007 21:31:00
Quote Anchor link
Frank schreef op 10.02.2007 21:02:
Offtopic: Even een paar vraagjes over jouw scriptje:
- Waarom controleer je niet of de query wel is gelukt? Deze kan altijd mislukken, je mag dus nooit aannamen dat het wel goed gaat.
- $query is een uiterst ongelukkige naam, er staat namelijk helemaal geen query in deze variabele, er staat een result-set in. $result is dus een veel betere naam en voorkomt hele knullige bugs in je systeem.
- Waarom gebruik je de functie mysql_fetch_object() ? Dit is veruit de langzaamste fetch-functie. Gebruik bv. mysql_fetch_assoc(), dat is net zo eenvoudig in het gebruik ( $list['bericht'] en stukken sneller.
- Waarom dubbele quotes gebruiken bij echo, dan moet je alle dubbele quotes in de html-tags gaan escapen. Het gebruik van enkele quotes maakt de boel een stuk overzichtelijker en je maakt minder fouten.


Nogmaals qoute @ Frank:
Als je echo ''; en $list[""]; gebruikt moet je de echo eerst afsluiten.
Dit kost veel extra onnodig code. Effe snel slordig in elkaar:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
require("config.php");

$select = "SELECT * FROM gastenboek";
$result = mysql_query($select);

while ($list = mysql_fetch_assoc($result))
{

echo '
<table style="width: 100%" cellspacing="0" cellpadding="0">
    <tr>
    <td background="../images/menu_top.jpg" height="21" class="left_content">&nbsp; Door <B>'
;
echo $list["naam"];
echo '</B> op';
echo $list["date"];
echo '
</td>        
    </tr>
    <tr>
        <td class="left_content">'
;
        
        echo $list["bericht"];
        
echo '</td>
    </tr>
    <tr>
        <td background="../images/menu_bottom.jpg" height="17" class="left_content_end">&nbsp;</td>
    </tr>
</table><BR>'
;

}


?>
Gewijzigd op 01/01/1970 01:00:00 door Dennis
 
Frank -

Frank -

10/02/2007 21:43:00
Quote Anchor link
Quote:
Als je echo ''; en $list[""]; gebruikt moet je de echo eerst afsluiten.
Ja, en? Variabelen haal je in een goed script (persoonlijke mening...) toch al buiten quotes, dus ik zie niet in wat het probleem is.

En zodra je gebruik gaat maken van een template-parser, gebruik je in de template vrijwel alleen html en hier en daar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $var?>
. Dan heb je dit probleem helemaal niet meer.
 
Dennis

Dennis

10/02/2007 21:51:00
Quote Anchor link
@ Frank:
Toch bedankt, dit is iig wel netter. Zal eens kijken hoe en wat ik het ga doen.

@ Derest:
Bedankt! de enters werken :)


Bedankt iedereen!
 
Frank -

Frank -

11/02/2007 00:07:00
Quote Anchor link
Dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
echo '
</td>        
    </tr>
    <tr>
        <td class="left_content">'
;
        
        echo $list["bericht"];
        
echo '</td>
?>

Kun je ook schrijven als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
echo '
</td>        
    </tr>
    <tr>
        <td class="left_content">
        '
.$list["bericht"].'
        </td>
    <tr>'
;
?>

Het is echt niet nodig om de echo te onderbreken, met een . (punt) kun je zo een variabele aan een string plakken en de hele zooi in 1x echoen.
 
Dennis

Dennis

11/02/2007 00:54:00
Quote Anchor link
@ Frank:
Dit wist ik nog niet precies. Nu weer dus wat nieuws geleerd :)
Zal het vaak gebruiken.
Bedankt!

Dennis
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.