Dubbele post ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jerry

jerry

02/12/2007 17:27:00
Quote Anchor link
Wanneer ik een reactie toevoeg aan een nieuwsbericht
werkt prima. Totdat ik 2 of meer reacties er aan toevoegd me webpagina ziet er dan zo uit

News.title
News.date
News.message
Comment.name
Comment.mail
Comment.message

News.title
News.date
News.message
Comment.name(2)
Comment.mail(2)
Comment.message(2)

zoals je ziet news.title, News.date, news.message komen dus dubbel weer, terwijl ik ze maar 1 echo.
erg irritant als je natuurlijk als je 5 reacties heb, dan zie je 5x het bericht .
Hoe kan ik dat oplossen, dat hij gewoon 1x mijn nieuwsbericht geeft en daaronder de geschreven reacties.


code
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
34
35
36
37
38
<?php

$news_id
= mysql_real_escape_string($_GET['id']);
$comment_id = mysql_real_escape_string($_GET['id']);

$sql = "SELECT comments.comment_id, comments.comment_name, comments.comment_mail, comments.comment_message, news.news_id, news.news_title, news.news_date, news.news_message FROM comments RIGHT JOIN news ON news.news_id = comments.comment_news_id WHERE news.news_id = ". $news_id." ORDER BY news.news_id";

$result = mysql_query( $sql )
or die( mysql_error() );

if( mysql_num_rows( $result) == 0 )
{

echo "Result = 0";
}


else
{
// While maken
while(
$output = mysql_fetch_assoc( $result) )
{
{

echo '<p class="title">// <a href="getNewsMessage.php?id=' . $output['news_id'] .'">'.$output['news_title'].'</a></p>';

echo '<p class="date">gepost op ' . dutchdate($output['news_date']) . '</p>';
echo '<p class="message">' . htmlspecialchars_decode($output['news_message']) . '</p>';
echo "\n\n";

echo '<p class="comment">' . htmlspecialchars_decode($output['comment_name']) . '</p>';;
echo '<p class="comment">' . htmlspecialchars_decode($output['comment_mail']) . '</p>';
echo '<p class="comment">' . htmlspecialchars_decode($output['comment_message']) . '</p>';
echo "\n\n";

}
}
}


?>
Gewijzigd op 01/01/1970 01:00:00 door Jerry
 
PHP hulp

PHP hulp

12/01/2025 02:44:51
 
Frank -

Frank -

02/12/2007 17:40:00
Quote Anchor link
Offtopic: $query is bij jou geen query, maar een resultset. Dit is dus vragen om moeilijkheden, onduidelijkheid alom. Gebruik een beschrijvende naam, bv. $result of $resultaat.

Daarnaast is de opmerking 'Table is empty' niet correct, er kunnen miljoenen records in de tabel staan en dat je met jouw query geen enkel resultaat krijgt. Er staat niet voor niks een WHERE in de query...

Ontopic: je doet niks aan beveiliging, een grappenmaker kan zo jouw tabellen leeg gooien, SQL-injection toepassen. Gebruik minimaal mysql_real_escape_string() om de GET-input te beveiligen.

$news_id = mysql_real_escape_string($_GET['id']);
 
Jerry

jerry

02/12/2007 17:53:00
Quote Anchor link
pgFrank schreef op 02.12.2007 17:40:
Offtopic: $query is bij jou geen query, maar een resultset. Dit is dus vragen om moeilijkheden, onduidelijkheid alom. Gebruik een beschrijvende naam, bv. $result of $resultaat.

Daarnaast is de opmerking 'Table is empty' niet correct, er kunnen miljoenen records in de tabel staan en dat je met jouw query geen enkel resultaat krijgt. Er staat niet voor niks een WHERE in de query...

Ontopic: je doet niks aan beveiliging, een grappenmaker kan zo jouw tabellen leeg gooien, SQL-injection toepassen. Gebruik minimaal mysql_real_escape_string() om de GET-input te beveiligen.

$news_id = mysql_real_escape_string($_GET['id']);

Thx heb het gelijk aangepast...
Maarja nu uiteraard nog steeds het zelfde probleem
 
Frank -

Frank -

02/12/2007 17:57:00
Quote Anchor link
Tellertje laten meelopen en de message slechts 1x tonen en de rest onbeperkt.

Pseudo code:
$teller = 0;
if $teller < 1 {
echo $message
$teller++;
}
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Jerry

jerry

02/12/2007 18:07:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

if ($counter_message < 1) {
echo '<p class="title">// <a href="getNewsMessage.php?id=' . $output['news_id'] .'">'.$output['news_title'].'</a></p>';
echo '<p class="date">gepost op ' . dutchdate($output['news_date'])  . '</p>';
echo '<p class="message">' .  htmlspecialchars_decode($output['news_message']) . '</p>';
echo "\n\n";

$counter_message++;
                }


?>

hij doet het zo
maar mag dit?
 
Frank -

Frank -

02/12/2007 18:08:00
Quote Anchor link
Waarom zou het niet mogen?

Edit: Het is wel zo netjes om $counter_message vóór de if, eerst te declareren:
$counter_message = 0;
if(blablabla
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Jerry

jerry

02/12/2007 18:10:00
Quote Anchor link
pgFrank schreef op 02.12.2007 18:08:
Waarom zou het niet mogen?


ik deed eerst dit
$counter_message = 0;
if ($counter_message < 1) {
maar dan kreeg ik ze allebei
 
Jerry

jerry

02/12/2007 18:39:00
Quote Anchor link
ben ik weer
hoe krijg ik zeg maar teller goed bij me post pagina dan

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
34
35
36
37
38
39
40
41
42
43
44
<?php

while(
$output = mysql_fetch_assoc( $result ) )  

{                    
{


if ($counter_message < 1) {
echo '<p class="title">// <a href="getNewsMessage.php?id=' . $output['news_id'] .'">'.$output['news_title'].'</a></p>';
echo '<p class="date">gepost op ' . dutchdate($output['news_date'])  . '</p>';
echo '<p class="message">' .  htmlspecialchars_decode($output['news_message']) . '</p>';
echo "\n\n";    
            
$counter_message++;
    }

            
echo '<p class="comment">' .  htmlspecialchars_decode($output['comment_name']) . '</p>';;
echo '<p class="comment">' .  htmlspecialchars_decode($output['comment_mail']) . '</p>';
echo '<p class="comment">' .  htmlspecialchars_decode($output['comment_message']) . '</p>';
echo "\n\n";  
            

//Reaction form
if (!isset($_POST['submit'])) {
    

echo'<form method="post" name="addComment" action="">';
echo'<legend><p class="comment">Reactie (uw ipadres wordt bewaard)</legend>';            
echo'<legend><p class="comment">Naam:</legend>    <input name="comment_name" size="20" class="comment_name_field"></p>';
echo'<legend><p class="comment">Mail:</legend>    <input name="comment_mail" size="20" class="comment_mail_field"></p>';                     
echo'<legend><p class="comment">Bericht:</legend>';
echo'<textarea cols="30" rows="4" name="comment_message" class="comment_message_field"></textarea></p>';
    
echo '<br/>';

echo'<input type="submit" name="submit" value="Posten" class="post_button">';
echo'<input type="reset" name="reset" value="Reset" class="post_button">';
echo'</form>';


}


?>


want nu is de post_reactie pagina als er 3 reacties zijn :

bericht
reactie
reactie formulier

reactie
reactie formulier

reactie
reactie formulier

het moet natuurlijk zijn
bericht
reactie 1
reactie 2
reactie 3
reactie_formulier
Gewijzigd op 01/01/1970 01:00:00 door jerry
 
Frank -

Frank -

02/12/2007 18:43:00
Quote Anchor link
Ik gok dat je ook slechts 1x het rectieformulier wilt hebben, die haal je buiten de while-lus en klaar ben je.
 
Jerry

jerry

02/12/2007 18:47:00
Quote Anchor link
pgFrank schreef op 02.12.2007 18:43:
Ik gok dat je ook slechts 1x het rectieformulier wilt hebben, die haal je buiten de while-lus en klaar ben je.


het form zit toch buiten mijn while lus
 
Jerry

jerry

02/12/2007 18:49:00
Quote Anchor link
kheb nisk gezegd;) zag het ff niet
te laat gister geworden ik
 
Frank -

Frank -

02/12/2007 18:49:00
Quote Anchor link
Blijkbaar niet, hij staat 3x op je scherm wanneer je 3 resultaten hebt. En 2x bij 2 resultaten.

Ik zie ook nergens een afsluitende } van de while-lus.
 
- SanThe -

- SanThe -

02/12/2007 18:50:00
Quote Anchor link
Ik zie 4 { en 2 } dus ik denk dat ie in de while() zit.
 
Jerry

jerry

02/12/2007 19:33:00
Quote Anchor link
toch heb ik nog twee vraagjes

Als er een reacties zijn laat hij toch
Naam:
Mail:
Bericht:
Zien
Hoe kan ik er voor zorgen dat ze pas zichtbaar zijn wanneer er werkelijk reacties pas zijn

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
<?php

                if ($counter_message < 1) {
                echo '<p class="title">// <a href="getNewsMessage.php?id=' . $output['news_id'] .'">'.$output['news_title'].'</a></p>';
                echo '<p class="date">gepost op ' . dutchdate($output['news_date'])  . '</p>';
                echo '<p class="message">' .  htmlspecialchars_decode($output['news_message']) . '</p>';
                echo "\n\n";
echo '<p class="title"> .Reacties</p>';    
                

                $counter_message++;
                }

                    
                
                echo '<p class="comment">Naam: ' .  htmlspecialchars_decode($output['comment_name']) . '</p>';;
                echo '<p class="comment">Mail: ' .  htmlspecialchars_decode($output['comment_mail']) . '</p>';
                echo '<p class="comment">Bericht: ' .  htmlspecialchars_decode($output['comment_message']) . '</p><br/>';
                echo "\n\n";

?>





en mijn tweede vraag is
elke keer wanneer ik reactie toevoeg
dan zie ik de resultaat niet gelijk op me php pagina
ik moet hem elke keer refreshen om het te laten zien
hoe los ik dit op

post page
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
            while(
            $output = mysql_fetch_assoc( $result ) )  

            {                    
            {


            if ($counter_message < 1) {
            echo '<p class="title">// <a href="getNewsMessage.php?id=' . $output['news_id'] .'">'.$output['news_title'].'</a></p>';
            echo '<p class="date">gepost op ' . dutchdate($output['news_date'])  . '</p>';
            echo '<p class="message">' .  htmlspecialchars_decode($output['news_message']) . '</p>';
            echo "\n\n";
            echo '<p class="title"> .Reacties</p>';    
            
            $counter_message++;
            }

            

            echo '<p class="comment">Naam: ' .  htmlspecialchars_decode($output['comment_name']) . '</p>';;
            echo '<p class="comment">Mail: ' .  htmlspecialchars_decode($output['comment_mail']) . '</p>';
            echo '<p class="comment">Bericht: ' .  htmlspecialchars_decode($output['comment_message']) . '</p><br/>';
            echo "\n\n";  
            
            }}}

            //Reaction form
            if (!isset($_POST['submit'])) {
    

            echo'<br/><form method="post" name="addComment" action="">';
            echo'<legend><p class="comment">Reactie (uw ipadres wordt bewaard)</legend>';            
            echo'<legend><p class="comment">Naam:</legend>    <input name="comment_name" size="20" class="comment_name_field"></p>';
            echo'<legend><p class="comment">Mail:</legend>    <input name="comment_mail" size="20" class="comment_mail_field"></p>';                     
            echo'<legend><p class="comment">Bericht:</legend>';
            echo'<textarea cols="30" rows="4" name="comment_message" class="comment_message_field"></textarea></p>';
    
            echo '<br/>';

            echo'<input type="submit" name="submit" value="Posten" class="post_button">';
            echo'<input type="reset" name="reset" value="Reset" class="post_button">';
            echo'</form>';


            }

            
            else
                    
            {
            //INSERT REACTION values
            $comment_name = mysql_real_escape_string($_POST['comment_name']);
            $comment_mail = mysql_real_escape_string($_POST['comment_mail']);
            $comment_message = mysql_real_escape_string($_POST['comment_message']);

            $comment_ip = $_SERVER['REMOTE_ADDR'];  
            

            $sql = mysql_query("INSERT INTO comments (comment_name, comment_mail, comment_message, comment_ip, comment_news_id) VALUES ('$comment_name', '$comment_mail', '$comment_message', '$comment_ip', '$news_id')");
            
        
            
            }

?>
 



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.