Questions about the MySQL, PostgreSQL, and most other databases, as well as using it with PHP can be asked here.
Moderator: General Moderators
vietboy505
Forum Commoner
Posts: 53 Joined: Wed Feb 22, 2006 9:30 am
Post
by vietboy505 » Sun Mar 12, 2006 12:15 am
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>');
?>
feyd
Neighborhood Spidermoddy
Posts: 31559 Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA
Post
by feyd » Sun Mar 12, 2006 12:30 am
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.
vietboy505
Forum Commoner
Posts: 53 Joined: Wed Feb 22, 2006 9:30 am
Post
by vietboy505 » Mon Mar 13, 2006 12:22 pm
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
}
feyd
Neighborhood Spidermoddy
Posts: 31559 Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA
Post
by feyd » Mon Mar 13, 2006 12:28 pm
so actually check $_POST['OWNER'] .. isset() only tells you if the element/variable exists, not if it's empty or valid..