AdamCCFC Posted March 12, 2010 Share Posted March 12, 2010 Right, I've had two scripts that I wanted to merger together. The problem I'm having is that when I click on comments link, all the other dreams in the database are being shown. Can anybody help me?? Here's my code, apologies for how messy it is!! <?php /** Display the results from the database **/ $q = "SELECT * FROM dream"; $r = mysql_query($q); if(mysql_num_rows($r)>0): //table is non-empty while($row = mysql_fetch_assoc($r)): $net_vote = $row['votes_up'] - $row['votes_down']; //this is the net result of voting up and voting down ?> <div class='entry'> <span class='link'> <?php echo $row['name']; ?><?php echo " dreamt "; ?><?php echo $row['dream']; ?> </a> </span> <span class='vote_buttons' id='vote_buttons<?php echo $row['dream_id']; ?>'> <a href='javascript:;' class='vote_up' id='<?php echo $row['dream_id']; ?>'>Vote Up!</a> <a href='javascript:;' class='vote_down' id='<?php echo $row['dream_id']; ?>'>Vote Down!</a> </span> <span class='votes_count' id='votes_count<?php echo $row['dream_id']; ?>'><?php echo $net_vote." votes"; ?></span> </div> <?php echo $row['tags']; ?><?php echo " "; ?><?php echo $row['date_entered']; ?><?php echo "</br>"; ?> <?php /* get number of comments */ $comment_query = "SELECT count(*) FROM dreams_comments WHERE dream_id={$row['dream_id']}"; $comment_result = mysql_query ($comment_query); $comment_row = mysql_fetch_row($comment_result); echo "<a id='commentslink' href=\"{$_SERVER['PHP_SELF']}?action=show&id={$row['dream_id']}\">Comments ($comment_row[0])</a>"; ?> <?php endwhile; endif; ?> <?php function displayDreams($all = 0) { /* bring in two variables * $db is our database connection * $max_items is the maximum number * of news items we want to display */ global $db, $max_items; //query to display the results $query = "SELECT dream_id,name,dream,tags FROM dream ORDER BY date_entered DESC"; $result = mysql_query ($query); while ($row = mysql_fetch_assoc ($result)) { /* place table row data in * easier to use variables. * Here we also make sure no * HTML tags, other than the * ones we want are displayed */ $date = $row['date_entered']; $name = htmlentities ($row['name']); $dream = nl2br (strip_tags ($row['dream'], '<a><b><i><u>')); $tags = $row['tags']; /* get number of comments */ $comment_query = "SELECT count(*) FROM dreams_comments WHERE dream_id={$row['dream_id']}"; $comment_result = mysql_query ($comment_query); $comment_row = mysql_fetch_row($comment_result); /* display number of comments with link */ } } function displayOneItem($id) { global $db; /* query for item */ $query = "SELECT * FROM `dream` WHERE `dream_id` = '$id'"; $result = mysql_query ($query); /* if we get no results back, error out */ if (mysql_num_rows ($result) == 0) { echo "Bad Dream ID\n"; return; } $row = mysql_fetch_assoc($result); /* easier to read variables and * striping out tags */ $name = htmlentities ($row['name']); $dream = nl2br (strip_tags ($row['dream'], '<a><b><i><u>')); $tags = ($row['tags']); /* display the items */ echo "<h1>" . $row['name'] . "</h1>"; echo 'dreamt'; echo "<p class='dream'>" . $row['dream'] . "</p>"; echo "<p class='tags'>" . $row['tags'] . "</p>"; echo "<p class='date'>" . $row['date_entered'] . "</p>"; echo "</br>"; /* now show the comments */ displayComments($id); } function displayComments($id) { /* bring db connection variable into scope */ global $db; /* query for comments */ $query = "SELECT * FROM dreams_comments WHERE dream_id=$id"; $result = mysql_query ($query); echo "Comments:</br>"; /* display the all the comments */ while ($row = mysql_fetch_assoc ($result)) { $name = htmlentities ($row['name']); echo "<p class='name'>$name</p>"; $comment = strip_tags ($row['comment'], '<a><b><i><u>'); $comment = nl2br ($comment); echo "<p class='user_comment'>$comment</p>"; echo "</br>"; } /* add a form where users can enter new comments */ echo "Leave a comment!"; echo "</br>"; echo "<form id='addcomment' action=\"" . $_SERVER['PHP_SELF'] . "?action=addcomment&id=$id\" method='POST'>"; echo "<table border='0' width='300'"; echo "<tr><td>Name:</td><td><input type'text' width'30' name='name'></td></tr>"; echo "<tr><td>Comment:</td><td><textarea cols='30' rows='10' name='comment'></textarea></td></tr>"; echo "<tr><td><input type='submit' name='submit' value='Add Comment'</td></tr>"; echo "</form>"; echo "</table>"; } function addComment($id) { global $db; /* insert the comment */ $query = "INSERT INTO dreams_comments VALUES('','$id','$_POST[name]','$_POST[comment]')"; mysql_query($query); echo "Comment entered. Thanks!</br>"; echo "<a href=\"{$_SERVER['PHP_SELF']}?action=show&id=$id\"> Back</a>"; } /* this is where the script decides what do do */ switch($_GET['action']) { case 'show': displayOneItem($_GET['id']); break; case 'all': displayDreams(1); break; case 'addcomment': addComment($_GET['id']); break; default: displayDreams(); } ?> Quote Link to comment Share on other sites More sharing options...
AdamCCFC Posted March 12, 2010 Author Share Posted March 12, 2010 anybody there?? Quote Link to comment Share on other sites More sharing options...
cs.punk Posted March 12, 2010 Share Posted March 12, 2010 Did you write it yourself? Quote Link to comment Share on other sites More sharing options...
AdamCCFC Posted March 12, 2010 Author Share Posted March 12, 2010 Well I followed tutorials for both, and then I edited it to suite my needs Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.