Moksha Posted August 13, 2007 Share Posted August 13, 2007 So im trying to create a simple address book system. I bought abook which has a supposed example of ready made code of this system working, However after following their exact instrucions i get the error "Unknown column 'state' in 'field list'". Is this an error in the php, or an error in my database. Here is the code they use to add a user: <?php if (!$_POST) { //haven't seen the form, so show it $display_block = " <form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\"> <p><strong>First/Last Names:</strong><br/> <input type=\"text\" name=\"f_name\" size=\"30\" maxlength=\"75\"> <input type=\"text\" name=\"l_name\" size=\"30\" maxlength=\"75\"></p> <p><strong>Address:</strong><br/> <input type=\"text\" name=\"address\" size=\"30\"></p> <p><strong>City/State/Zip:</strong><br/> <input type=\"text\" name=\"city\" size=\"30\" maxlength=\"50\"> <input type=\"text\" name=\"state\" size=\"5\" maxlength=\"2\"> <input type=\"text\" name=\"zipcode\" size=\"10\" maxlength=\"10\"></p> <p><strong>Address Type:</strong><br/> <input type=\"radio\" name=\"add_type\" value=\"home\" checked> home <input type=\"radio\" name=\"add_type\" value=\"work\"> work <input type=\"radio\" name=\"add_type\" value=\"other\"> other</p> <p><strong>Telephone Number:</strong><br/> <input type=\"text\" name=\"tel_number\" size=\"30\" maxlength=\"25\"> <input type=\"radio\" name=\"tel_type\" value=\"home\" checked> home <input type=\"radio\" name=\"tel_type\" value=\"work\"> work <input type=\"radio\" name=\"tel_type\" value=\"other\"> other</p> <p><strong>Fax Number:</strong><br/> <input type=\"text\" name=\"fax_number\" size=\"30\" maxlength=\"25\"> <input type=\"radio\" name=\"fax_type\" value=\"home\" checked> home <input type=\"radio\" name=\"fax_type\" value=\"work\"> work <input type=\"radio\" name=\"fax_type\" value=\"other\"> other</p> <p><strong>Email Address:</strong><br/> <input type=\"text\" name=\"email\" size=\"30\" maxlength=\"150\"> <input type=\"radio\" name=\"email_type\" value=\"home\" checked> home <input type=\"radio\" name=\"email_type\" value=\"work\"> work <input type=\"radio\" name=\"email_type\" value=\"other\"> other</p> <p><strong>Personal Note:</strong><br/> <textarea name=\"note\" cols=\"35\" rows=\"3\" wrap=\"virtual\"></textarea></p> <p><input type=\"submit\" name=\"submit\" value=\"Add Entry\"></p> </form>"; } else if ($_POST) { //time to add to tables, so check for required fields if (($_POST["f_name"] == "") || ($_POST["l_name"] == "")) { header("Location: addentry.php"); exit; } //connect to database $mysqli = mysqli_connect("localhost", "root", "alpha", "system"); //add to master_name table $add_master_sql = "INSERT INTO master_name (date_added, date_modified, f_name, l_name) VALUES (now(), now(), '".$_POST["f_name"]."', '".$_POST["l_name"]."')"; $add_master_res = mysqli_query($mysqli, $add_master_sql) or die(mysqli_error($mysqli)); //get master_id for use with other tables $master_id = mysqli_insert_id($mysqli); if (($_POST["address"]) || ($_POST["city"]) || ($_POST["state"]) || ($_POST["zipcode"])) { //something relevant, so add to address table $add_address_sql = "INSERT INTO address (master_id, date_added, date_modified, address, city, state, zipcode, type) VALUES ('".$master_id."', now(), now(), '".$_POST["address"]."', '".$_POST["city"]."', '".$_POST["state"]."' , '".$_POST["zipcode"]."' , '".$_POST["add_type"]."')"; $add_address_res = mysqli_query($mysqli, $add_address_sql) or die(mysqli_error($mysqli)); } if ($_POST["tel_number"]) { //something relevant, so add to telephone table $add_tel_sql = "INSERT INTO telephone (master_id, date_added, date_modified, tel_number, type) VALUES ('".$master_id."', now(), now(), '".$_POST["tel_number"]."', '".$_POST["tel_type"]."')"; $add_tel_res = mysqli_query($mysqli, $add_tel_sql) or die(mysqli_error($mysqli)); } if ($_POST["fax_number"]) { //something relevant, so add to fax table $add_fax_sql = "INSERT INTO fax (master_id, date_added, date_modified, fax_number, type) VALUES ('".$master_id."', now(), now(), '".$_POST["fax_number"]."', '".$_POST["fax_type"]."')"; $add_fax_res = mysqli_query($mysqli, $add_fax_sql) or die(mysqli_error($mysqli)); } if ($_POST["email"]) { //something relevant, so add to email table $add_email_sql = "INSERT INTO email (master_id, date_added, date_modified, email, type) VALUES ('".$master_id."', now(), now(), '".$_POST["email"]."', '".$_POST["email_type"]."')"; $add_email_res = mysqli_query($mysqli, $add_email_sql) or die(mysqli_error($mysqli)); } if ($_POST["note"]) { //something relevant, so add to notes table $add_notes_sql = "INSERT INTO personal_notes (master_id, date_added, date_modified, note) VALUES ('".$master_id."', now(), now(), '".$_POST["note"]."')"; $add_notes_res = mysqli_query($mysqli, $add_notes_sql) or die(mysqli_error($mysqli)); } mysqli_close($mysqli); $display_block = "<p>Your entry has been added. Would you like to <a href=\"addentry.php\">add another</a>?</p>"; } ?> <html> <head> <title>Add an Entry</title> </head> <body> <h1>Add an Entry</h1> <?php echo $display_block; ?> </body> </html> I created a simple database called system, and add the tables using the following MySQL code. CREATE TABLE master_name ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, date_added DATETIME, date_modified DATETIME, f_name VARCHAR (75), l_name VARCHAR (75) ); CREATE TABLE address ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, master_id INT NOT NULL, date_added DATETIME, date_modified DATETIME, address VARCHAR (255), city VARCHAR (30), star CHAR (2), zipcode VARCHAR (10), type ENUM ('home','work','other') ); CREATE TABLE telephone ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, master_id INT NOT NULL, date_added DATETIME, date_modified DATETIME, tel_number VARCHAR (25), type ENUM ('home','work','other') ); CREATE TABLE fax ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, master_id INT NOT NULL, date_added DATETIME, date_modified DATETIME, fax_number VARCHAR (25), type ENUM ('home','work','other') ); CREATE TABLE email ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, master_id INT NOT NULL, date_added DATETIME, date_modified DATETIME, fax_number VARCHAR (150), type ENUM ('home','work','other') ); CREATE TABLE personal_notes ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, master_id INT NOT NULL, date_added DATETIME, date_modified DATETIME, note TEXT ); Quote Link to comment https://forums.phpfreaks.com/topic/64667-solved-whats-wrong-with-this-script/ Share on other sites More sharing options...
Gamic Posted August 13, 2007 Share Posted August 13, 2007 inside of your create tables sql change this: CREATE TABLE address ( ... star CHAR (2), ... ); to state char(2), Quote Link to comment https://forums.phpfreaks.com/topic/64667-solved-whats-wrong-with-this-script/#findComment-322409 Share on other sites More sharing options...
Moksha Posted August 14, 2007 Author Share Posted August 14, 2007 hey man thanks for the great work. problem solved! Quote Link to comment https://forums.phpfreaks.com/topic/64667-solved-whats-wrong-with-this-script/#findComment-323282 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.