Dubbele post ?
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)
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
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";
}
}
}
?>
$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
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']);
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']);
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
Pseudo code:
$teller = 0;
if $teller < 1 {
echo $message
$teller++;
}
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
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++;
}
?>
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?
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 -
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
hoe krijg ik zeg maar teller goed bij me post pagina dan
Code (php)
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
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>';
}
?>
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
Ik gok dat je ook slechts 1x het rectieformulier wilt hebben, die haal je buiten de while-lus en klaar ben je.
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
te laat gister geworden ik
Ik zie ook nergens een afsluitende } van de while-lus.
Ik zie 4 { en 2 } dus ik denk dat ie in de while() zit.
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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";
?>
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)
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
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')");
}
?>
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')");
}
?>