开发者

Establishing a "post ID" value for a comment leaving system

开发者 https://www.devze.com 2023-01-10 09:13 出处:网络
I am trying to attach a numerical \"post ID\" value to comments so that they can be retrieved from the database and displayed in the proper place. How do I establish this numerical value within my htm

I am trying to attach a numerical "post ID" value to comments so that they can be retrieved from the database and displayed in the proper place. How do I establish this numerical value within my html form as something that gets sent to the script that inserts it into the database? I assume I need to use GET or POST but I don't understand how to use those to send开发者_运维技巧 anything except text entered by the user.

This is the form I am using to send the "name" and "comment" inputs:

 <div class="comments">
 <form action="foxpost.php" method="post">

 <label for="name">Name</label><br>
 <input id="name" name="name" type="text" /><br>
 <label for="message">Comment</label><br>
 <textarea class="message" id="message" name="message"></textarea><br><br>

 <input type="Submit" value="Post Comment" />
 </form>
 </div>


Since you tagged this question with PHP, I'm guessing thats the language your using for your back-end. Another assumption I'm making is that your actually formatting your request querystring with the postID, something like "http://example.com/posts.php?postID=1212", notice the postID in the querystring, you just pass that on, like this:

 <div class="comments">
 <form action="foxpost.php?postID=<%= $_GET['postID'] %>" method="post">

 <label for="name">Name</label><br>
 <input id="name" name="name" type="text" /><br>
 <label for="message">Comment</label><br>
 <textarea class="message" id="message" name="message"></textarea><br><br>

 <input type="Submit" value="Post Comment" />
 </form>
 </div>

Using

<%= $_GET['postID'] %>

will simply echo the postID from the querystring straight into the HTML, or you could assign it to a variable.


If you are using mysql you don't need to create it, mysql can auto-create it when you insert a new post.

For example we could create a table

CREATE TABLE `student` ( 
`student_id` INT( 3 ) NOT NULL AUTO_INCREMENT, 
`name` VARCHAR( 25 ) NOT NULL , 
`email` VARCHAR( 50 ) NOT NULL , 
UNIQUE ( `student_id` ) 
);

And then use the following query

INSERT INTO `student` ( `name` , `email` ) VALUES ( 'john', 'email' );

As you can see the id is not specified in the query, but the field has the AUTO_INCREMENT attribute. When you insert a student without an id it will get the highest id and add one. So if you have the empty table and run the above insert query, you will get 3 rows with id 1,2 and 3.



More in the mysql manual http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

p.s. if you are using a different database please specify wich one.

--- EDIT 1 --- might have misread the question very badly (it's past midnight but that's not an excuse)
You have a few options if you want to pass 1. a hiddent field, that was mention here 2. a $_GET['postid'] from something like comment.php?postid=13 if you add comments from another page 3. both

BUT don't forget, before adding the comment that the post exists.

... might i suggest using the akismet library to cut down on spam ? http://www.achingbrain.net/stuff/php/akismet

You can get a key for free when you register at wordpress.com


Put the id in a hidden field in your form:

<input type="hidden" name="post_id" value="id_goes_here" />


I would suggest to not have the ID as part of the form and just use your databases AUTO_INCREMENT feature.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号