please forgive naivety and innocence...I am not a programmer! I have spent the best part of 4 days on this and I am ready for a PHP lesson or intense therapy.
Scenario: DB built in mySQL. Table with all columns varchar(50) except ID and age - both INT. See below, I just need a 'Yes' value in the checkbox linked colums/fields.
I want to insert data with a form that has both textboxes and checkboxes. I thought best way to do this was php array...??
Form:
<form action="process.php" method="post" enctype="multipart/form-data">
<label>Childname
<input type="text" name="textfield[childname]" />
</label>
<p>
<label>Age
<input type="text" name="textfield[age]" />
</label>
</p>
<p>
<label>Parent Name
<input type="text" name="textfield[parent_name]" />
</label>
</p>
<p>
<label>Contact Number
<input type="text" name="textfield[contact_no]" />
</label>
</p>
<p>Subjects<br />
<label>
<input type="checkbox" name="checkbox[scratch]" value="checkbox" />
Scratch</label>
<label>
<input type="checkbox" name="checkbox[app_inventor]" value="checkbox" />
App Inventor</label>
<label>
<input type="checkbox" name="checkbox[html]" value="checkbox" />
HTML</label>
</p>
<p>Sessions Attended<br />
<label>
<input type="checkbox" name="checkbox[nov12]" value="checkbox" />
Nov 2012</label>
</p>
<p>
<label>
<input type="checkbox" name="checkbox[dec12]" value="checkbox" />
Dec 2012</label>
</p>
<p> </p>
<p>
<label>
<input type="submit" name="Submit" value="Submit" />
</label>
</p>
</form>
PHP script:
<?php
include("config.php");
$childrecord = array("childname","age","parent_name","contact_no","scratch","app_inventor","html");
if(isset($_POST['childrecord'])){
$childrecord = $_POST['childrecord'];
$i = 0;
foreach ($childrecord as $key => $value); {
$i++;
$sql="INSERT INTO tblchildren (childrecord) VALUES ($_POST['childrecord'])";
mysql_query($sql);
}
?>
Please help! Thanks in advance....
You want to store your form data in your code.
For this you have to make following changes in your code and database.
note: Input field value should be relevant.
With your existing html code your process.php will get data in this structure
Array
(
[textfield] => Array
(
[childname] => dang
[age] => 18
[parent_name] => doctor
[contact_no] => 100
)
[checkbox] => Array
(
[scratch] => checkbox
[app_inventor] => checkbox
[html] => checkbox
[nov12] => checkbox
[dec12] => checkbox
)
[Submit] => Submit
)
So you need to modify your process.php
Before that you have to modify structure of your table, follow these steps
1. Delete your existing table
2. Create new table
DROP TABLE tblchildren ;
CREATE TABLE tblchildren
(
id INT AUTO_INCREMENT PRIMARY KEY,
childname VARCHAR(30),
age TINYINT,
parent_name VARCHAR(30),
contact_no VARCHAR(20),
scratch ENUM('yes','no'),
app_inventor ENUM('yes','no'),
html ENUM('yes','no'),
sesNov12Attnd ENUM('yes','no'),
sesDec12Attnd ENUM('yes','no')
);
Since you are new to php so i have used basic function, I will suggest you to use switch from mysql to mysqli
<?php
$con=mysql_connect("hostname","username","pass");
$db=mysql_select_db('dbname', $con);
//check form is submitted
if(isset($_POST)){
//mysql_real_escape_string() prevents from sql injection.
$childname= mysql_real_escape_string($_POST['textfield']['childname']);
$age=mysql_real_escape_string($_POST['textfield']['age']);
$parentName=mysql_real_escape_string($_POST['textfield']['parent_name']);
$contactNo=mysql_real_escape_string($_POST['textfield']['contact_no']);
$scratch=isset($_POST['checkbox']['scratch'])?'yes':'no';
$appInventor=isset($_POST['checkbox']['app_inventor'])?'yes':'no';
$html=isset($_POST['checkbox']['html'])?'yes':'no';
$nov12=isset($_POST['checkbox']['nov12'])?'yes':'no';
$dec12=isset($_POST['checkbox']['dec12'])?'yes':'no';
$sql="INSERT INTO tblchildren(childname, age, parent_name, contact_no, scratch,app_inventor,html, sesNov12Attnd, sesDec12Attnd )
VALUES
('$childname',$age,'$parentName','$contactNo','$scratch','$appInventor','$html','$nov12','$dec12')";
mysql_query($sql);
}else{
echo "Form Not SUbmitted";
}
?>