I am trying to learn PHP. I have set up a database, a table, and made a form that allows me to add new rows to the table when the submit button is clicked. The problem is that the form also submits any time the page is loaded or refreshed, which results in a bunch of empty rows in my database table.
How do I make it so that my PHP form only submits when the user clicks the submit button or clicks the enter key?
You can see the page for yourself here:
http://justdoitright.us/learnphp/things-to-do3.php
Here is my HTML form:
<form method="post" action="things-to-do3.php" class="form">
<div class="formfield">Person: <input type="text" name="person" /></div>
<div class="formfield">Task: <input type="text" name="task" /></div>
<div class="formfield">Time: <input type="text" name="time" /></div>
<div class="formfield">Completion Status: <input type="text" name="completed" /></div>
<div class="formfield"><input type="submit" /></div>
</form>
Here is my PHP which is located in the same .php file:
<?php
/*Connect to the database */
$connect = mysql_connect("**********","**********","**********");
if (!$connect)
{
die('Could not connect to the database: ' . mysql_error());
}
mysql_select_db('**********');
/* Insert the data from the form into the database */
$sql = "INSERT INTO ThingsToDo (Person, Task, Time, Completed)
VALUES
('$_POST[person]','$_POST[task]','$_POST[time]','$_POST[completed]')";
/*Notify user if data insertion was successful or not */
if (!mysql_query($sql,$connect))
{
die('Error: ' . mysql_error());
}
echo "1 record added<br>";
$query = "SELECT * FROM ThingsToDo";
$result = mysql_query($query);
$num = mysql_num_rows($result);
$i=0;
while ($i < $num) {
/*display something */
$person =mysql_result($result,$i,"person");
$task =mysql_result($result,$i,"task");
$time =mysql_result($result,$i,"time");
$completed =mysql_result($result,$i,"completed");
// This will test TRUE if the integer is even
/* */
if (($i % 2) == 0)
$state = "even";
else
$state = "odd";
//echo "<b>$person</b><br>$task<br>$time<br>$completed<br><hr><br>";
echo "
<div class='row $state'>
<span class='person'>$person</span>
<span class='task'>$task</span>
<span class='time'>$time</span>
<span class='completed'>$completed</span>
</div>
<div style='clear:both;'></div>";
$i++;
}
mysql_close($connect)
?>
(I will worry about form validation later, I'm new to PHP so baby steps!)