Page 1 of 1

insert data from form to mySQL database

Posted: Sun Mar 12, 2006 12:15 am
by vietboy505
I have run createTable.php and everything is created.
Now I want to run insertData.php. I want the user to enter stuff in the form & everything must be fill in before they click the submit button. It will call submitData() & all the information was enter will insert into the database.

How can I do that.

config.php

Code: Select all

<?php
$errCon = "<br> Contact your webmaster. <br>";
$server = "localhost";
$user = "root";
$password = "pass";
$tableDaily="issue";
$dbnameDaily="daily_issue";

?>

 <?php
    mysql_connect($server, $user, $password)
    or die($errCon . mysql_error());

    echo "SUCCESS";
?>
createTable.php

Code: Select all

<?php include("config.php"); ?>

<?php


mysql_query("CREATE DATABASE $dbnameDaily") or die($errCon . mysql_error());
echo "success in database creation. $dbnameDaily";

?>


 <?php

    mysql_select_db($dbnameDaily) or die($errCon . mysql_error());
// Create a MySQL table in the selected database
mysql_query("CREATE TABLE $tableDaily(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
owner VARCHAR(30),
problem VARCHAR(999),
status VARCHAR(1),
dateCreate DATETIME,   //YYYY-MM-DD HH:MM:SS
dateModify TIMESTAMP)")  //YYYY-MM-DD HH:MM:SS
or die($errCon . mysql_error());

echo "Table Created!";
?>
insertData.php

Code: Select all

<?php include("config.php"); ?>

<?php

function submitData() {

mysql_select_db($dbnameDaily) or die($errCon . mysql_error());

$DATECREATE=$DATEMODIFY=date("Y-m-d H:i:s");


// Insert a row of information into the table

mysql_query("INSERT INTO $tableDaily
(owner, problem, status, dateCreate, dateModidy)

VALUES('$OWNER', '$PROBLEM','$STATUS', '$DATECREATE', '$DATEMODIFY' ) ")

or die($errCon . mysql_error());

//owner VARCHAR(30),
//problem VARCHAR(999),
//status VARCHAR(1),
//dateCreate DATETIME,   //YYYY-MM-DD HH:MM:SS
//dateModify TIMESTAMP)")  //YYYY-MM-DD HH:MM:SS

echo "Data Inserted!";

}
?>

<?php

echo('<form name="create_form" method="post">
<input type="hidden" name="require" value="OWNER,PROBLEM">
<table>
<tr>
    <td align="right">Name:</td>
    <td><input name="OWNER" size="25"></td>
</tr>

<tr>
    <td align="right">Status:</td>
    <td><select name="STATUS">
    <option value="W">Work
    <option value="I">Idle
    </select>
    </td>
</tr>

<tr>
    <td align="right">Problem:</td>
    <td><textarea name="PROBLEM" rows="10" cols="40"></textarea>
    </td>
</tr>

<tr>
    <td colspan="2" align="center"><input type="submit" value="Submit" name="create_form">
    <input type="reset" value="Reset" name="reset"></td>
</tr>

</table>
</form>');
?>

Posted: Sun Mar 12, 2006 12:30 am
by feyd
You can detect the submission using $_SERVER['REQUEST_METHOD'].
You can verify the fields are filled using foreach on $_POST and looking at the values of each element.

Posted: Mon Mar 13, 2006 12:22 pm
by vietboy505
It works with the below code.

Code: Select all

<?php include("config.php"); ?>

<?php

if (isset($_POST['create_form'])) {
// this means the form was submitted
    submitData(); // now Call the function
}

function submitData() {
   global $dbnameDaily;
   global $tableDaily;

mysql_select_db($dbnameDaily) or die($errCon . mysql_error());

$DATECREATE=$DATEMODIFY=date("Y-m-d H:i:s");

   $OWNER = $_POST["OWNER"];
   $PROBLEM = $_POST["PROBLEM"];
   $STATUS = $_POST["STATUS"];


// Insert a row of information into the table

mysql_query("INSERT INTO $tableDaily
(owner, problem, status, dateCreate, dateModify)

VALUES('$OWNER', '$PROBLEM','$STATUS', '$DATECREATE', '$DATEMODIFY' ) ")

or die($errCon . mysql_error());

echo "Data Inserted!";

}
?>


<html>
  <body>

<form name="create_form" method="POST" action="<?php echo $PHP_SELF ?>">
<input type="hidden" name="require" value="OWNER,PROBLEM">
<table>
<tr>
    <td align="right">Name:</td>
    <td><input name="OWNER" size="25"></td>
</tr>

<tr>
    <td align="right">Status:</td>
    <td><select name="STATUS">
    <option value="W">Work
    <option value="I">Idle
    </select>
    </td>
</tr>

<tr>
    <td align="right">Problem:</td>
    <td><textarea name="PROBLEM" rows="10" cols="40"></textarea>
    </td>
</tr>

<tr>
    <td colspan="2" align="center"><input type="submit" value="Submit" name="create_form">
    <input type="reset" value="Reset" name="reset"></td>
</tr>

</table>
</form>
</body>
</html>
This just check when it's submit & call the submitData(). But I want to make sure all entries are fill in such as OWNER & PROBLEM.

I try this and it doesn't work. Regardless, it's always call submitData() without enter info in.

Code: Select all

if (isset($_POST['create_form']) && isset($_POST['OWNER']) && isset($_POST['PROBLEM']) ) {
// this means the form was submitted
    submitData(); // now Call the function
}

Posted: Mon Mar 13, 2006 12:28 pm
by feyd
so actually check $_POST['OWNER'] .. isset() only tells you if the element/variable exists, not if it's empty or valid..