tarleton Posted August 3, 2009 Share Posted August 3, 2009 Hi guys got a form I am making. At the moment what happens is the user runs the install script then enters details in the form which then posts data to formindb.php which inserts in a php table. At the moment everything works fine except the m_dat and m_tim fields do not get sent from the form to the database. Any ideas? Install <?php $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } // Create database if (mysql_query("CREATE DATABASE module",$con)) { echo "Database created"; } else { echo "Error creating database: " . mysql_error(); } // Create table mysql_select_db("module", $con); $sql = "CREATE TABLE `module`.`form_data` (`your_team` VARCHAR(30) NOT NULL, `opp_team` VARCHAR(30) NOT NULL, `m_dat` VARCHAR(15) NOT NULL, `m_tim` VARCHAR(15) NOT NULL, `g_name` VARCHAR(30) NOT NULL, `result` VARCHAR(15) NOT NULL, `writeup` TEXT NOT NULL) ENGINE = MyISAM;"; // Execute query mysql_query($sql,$con) or trigger_error("Error in query: $sql <br>Error was:" . mysql_error(),E_USER_ERROR); mysql_close($con); ?> Form <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Match Report</title> <style type="text/css"> <!-- #match_report table tr td label { text-align: center; } --> </style> </head> <body> <form id="match_report" name="Match Report" method="post" FORM ACTION="formindb.php"> <table width="480" border="0"> <tr> <td colspan="2"><center><strong>Match Report</strong></center></td> </tr> <tr> <td width="176">Your Clan Name:</td> <td width="288"><input type="text" name="your_team" id="Team1" value="Your Clan Name" /></td> </tr> <tr> <td>Opposing Team:</td> <td><input type="text" name="opp_team" id="opp_team" value="Opposing Team Name"/></td> </tr> <tr> <td>Date of Match:</td> <td><input name="m_dat" type="text" id="m_dat" value="dd/mm/year" size="13"/></td> </tr> <tr> <td>Time of Match:</td> <td><input name="m_tim" type="text" id="m_tim" value="hh:mm PM" size="13"/></td> </tr> <tr> <td>Game Name:</td> <td><input type="text" name="g_name" id="g_name" value="Game Played"/></td> </tr> <tr> <td><label> </label> Result:</td> <td><input name="result" type="text" id="result" value="11-3" size="10"/></td> </tr> <tr> <td>Write Up:</td> <td><textarea name="writeup" id="writeup" cols="45" rows="5"></textarea></td> </tr> <tr> <td colspan="2"><label> <input type="submit" name="submit" id="submit" value="Submit" /> </label></td> </tr> </table> </form> </body> </html> Formindb.php <?php $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } // Create table mysql_select_db("module", $con); $your_team = mysql_real_escape_string($_POST['your_team']); $opp_team = mysql_real_escape_string($_POST['opp_team']); $m_tim = mysql_real_escape_string($_POST['m_tim']); $m_dat = mysql_real_escape_string($_POST['m_dat']); $g_name = mysql_real_escape_string($_POST['g_name']); $result = mysql_real_escape_string($_POST['result']); $writeup = mysql_real_escape_string($_POST['writeup']); $sql="INSERT INTO form_data (your_team, opp_team, m_dat, m_tim, g_name, result, writeup) VALUES ('$your_team','$opp_team','$m_dat','$m_tim','$g_name','$result','$writeup') "; // Execute query mysql_query($sql,$con) or trigger_error("Error in query: $sql <br>Error was:" . mysql_error(),E_USER_ERROR); mysql_close($con); ?> Any help appreciated. Link to comment https://forums.phpfreaks.com/topic/168601-php-form-insert-mysql/ Share on other sites More sharing options...
phpSensei Posted August 3, 2009 Share Posted August 3, 2009 What data type are you using for the m_tim and m_dat in ur mysql? Link to comment https://forums.phpfreaks.com/topic/168601-php-form-insert-mysql/#findComment-889338 Share on other sites More sharing options...
tarleton Posted August 3, 2009 Author Share Posted August 3, 2009 Its just m_dat = -02/09/2009 and m_time = 4:15 PM Link to comment https://forums.phpfreaks.com/topic/168601-php-form-insert-mysql/#findComment-889353 Share on other sites More sharing options...
phpSensei Posted August 3, 2009 Share Posted August 3, 2009 Its just m_dat = -02/09/2009 and m_time = 4:15 PM Okay but the database columns datatype, is it DATE, UNIX_TIMESTAMP, VARCHAR..etc what is it? and what does it put inside the database columns of the m_tim and m_dat instead of the users inputted value? Link to comment https://forums.phpfreaks.com/topic/168601-php-form-insert-mysql/#findComment-889357 Share on other sites More sharing options...
tarleton Posted August 3, 2009 Author Share Posted August 3, 2009 They are Varchars, and it just leaves them blank Link to comment https://forums.phpfreaks.com/topic/168601-php-form-insert-mysql/#findComment-889367 Share on other sites More sharing options...
phpSensei Posted August 3, 2009 Share Posted August 3, 2009 Try printing both of them and see what it outputs $m_tim = mysql_real_escape_string($_POST['m_tim']); $m_dat = mysql_real_escape_string($_POST['m_dat']); Link to comment https://forums.phpfreaks.com/topic/168601-php-form-insert-mysql/#findComment-889369 Share on other sites More sharing options...
tarleton Posted August 3, 2009 Author Share Posted August 3, 2009 Printed both still they printed fine still not submitting to database Link to comment https://forums.phpfreaks.com/topic/168601-php-form-insert-mysql/#findComment-889556 Share on other sites More sharing options...
_DarkLink_ Posted August 3, 2009 Share Posted August 3, 2009 You seem to have missed a semi-colon after your SQL query. Try replacing: $sql="INSERT INTO form_data (your_team, opp_team, m_dat, m_tim, g_name, result, writeup) VALUES ('$your_team','$opp_team','$m_dat','$m_tim','$g_name','$result','$writeup') "; With: $sql="INSERT INTO form_data (your_team, opp_team, m_dat, m_tim, g_name, result, writeup) VALUES ('$your_team','$opp_team','$m_dat','$m_tim','$g_name','$result','$writeup'); "; Hope it helps. Link to comment https://forums.phpfreaks.com/topic/168601-php-form-insert-mysql/#findComment-889562 Share on other sites More sharing options...
PFMaBiSmAd Posted August 3, 2009 Share Posted August 3, 2009 The semi-colon ; is not required when a query is execuited using php (if that was the problem, the whole query would not work, not just two pieces of data.) The posted code works for me and it is unlikely that just two values would not work, especially since you have echoed them in the code that inserts them into the table. Echo $sql to make sure what the whole query contains (there is a slight chance that if register_globals are on and you have something like cookies with those same names that the value won't be what you expect.) How do you know those two values are not working? Perhaps your code that is displaying the information is not working? You should use a mysql DATETIME data type to hold that information anyway. Using separate values and values with those formats will make your queries and code more complicated if not impossible (that date format 02/09/2009 cannot be directly sorted or used in greater-than/less-than comparisons, which a DATETIME data type can.) Link to comment https://forums.phpfreaks.com/topic/168601-php-form-insert-mysql/#findComment-889575 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.