简体   繁体   中英

PHP/HTML Storing data to database. What's wrong in my coding?

I'm creating a simple database but I don't know why its not working. When I click the 'Submit' button it doesn't create a table and doesn't store the data in the data base.

There is no error report showing so I don't know whats wrong.

Here is my code.

<?php // CONTROLLED PAGE
require_once('pdsACcontrolled.php'); //includes my DB connection

$surnamex = $_POST["surname"];
$firstnamex = $_POST["firstname"];
$middlenamex = $_POST["middlename"];
$nameextensionx = $_POST["nameextension"];
$bdatex = $_POST["bdate"];
$bplacex = $_POST["bplace"];
$sexx = $_POST["sex"];
$civstatx = $_POST["civstat"];
$citizenshipx = $_POST["citizenship"];
$heightx = $_POST["height"];
$weightx = $_POST["weight"];
$bloodtypetx = $_POST["bloodtype"];
$gsisnox = $_POST["gsisno"];
$pagibignox = $_POST["pagibigno"];
$philhealthnox = $_POST["philhealthno"];
$sssx = $_POST["sssno"];
$resaddx = $_POST["resadd"];
$zipcodex = $_POST["zipcode"];
$telnox = $_POST["telno"];
$emailaddx = $_POST["emailadd"];
$cellnox = $_POST["cellno"];
$agencynox = $_POST["agencyno"];
$tin = $_POST["tin"];


$uid = mysql_real_escape_string($uid);

if($_POST['submitbutton'] == "submit")
{

$sql = "CREATE TABLE $uid
        ( _key INT NOT NULL AUTO_INCREMENT
        , surname  TEXT(50) NOT NULL DEFAULT '?'
        , firstname  TEXT(50) NOT NULL DEFAULT '?'
        , middlename  TEXT(50) NOT NULL DEFAULT '?'
        , nameextension  TEXT(50) NOT NULL DEFAULT '?'
        , bdate  DATE NOT NULL DEFAULT '?'
        , bplace  TEXT(200) NOT NULL DEFAULT '?'
        , sex  TEXT NOT NULL DEFAULT '?'
        , civstat  TEXT NOT NULL DEFAULT '?'
        , citizenship  TEXT(50) NOT NULL DEFAULT '?'
        , height  INT(10) NOT NULL DEFAULT '?'
        , weight  INT(10) NOT NULL DEFAULT '?'
        , bloodtype  TEXT(50) NOT NULL DEFAULT '?'
        , gsisno  TEXT(50) NOT NULL DEFAULT '?'
        , pagibigno  TEXT(50) NOT NULL DEFAULT '?'
        , philhealthno  TEXT(50) NOT NULL DEFAULT '?'
        , sssno  TEXT(50) NOT NULL DEFAULT '?'
        , resadd  TEXT(500) NOT NULL DEFAULT '?'
        , zipcode  TEXT(50) NOT NULL DEFAULT '?'
        , telno  INT(20) NOT NULL DEFAULT '?'
        , emailadd  TEXT(50) NOT NULL DEFAULT '?'
        , cellno  int(20) NOT NULL DEFAULT '?'
        , agencyno  TEXT(50) NOT NULL DEFAULT '?'
        , tin  TEXT(50) NOT NULL DEFAULT '?'
        , PRIMARY KEY (_key))";




        $query="INSERT INTO $uid(surname,firstname,middlename,nameextension,bdate,bplace,sex,civstat,citizenship,height,weight,bloodtype,gsisno,pagibigno,philhealthno,sssno,resadd,zipcode,telno,emailadd,cellno,agencyno,tin)VALUES('$surnamex','$firstnamex','$nameextensionx','$bdatex','$bplacex','$sexx','$civstatx','$citizenshipx','$heightx','$weightx','$bloodtypex','$gsisnox','$pagibignox','$philhealthnox','$sssnox','$resaddx','$zipcodex','$telnox','$emailaddx','$cellnox','$agencynox','$tinx')";

        mysql_query($query) or die (mysql_error());
        echo "The user $uid has been succesfully registered.";



}
?>











<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>
Online PDS | Personal Info
</title>
<script src="pdsjavascript.js"></script>

<link rel="stylesheet" type="text/css" href="pdscss.css">
</head>


<body>


<center>
<form method='POST' action='pdsformpersonalinfo.php'>
<table border=1 cols='3' width='500px'>
<tr><td colspan='3' id='titlehead' class='head'>I. PERSONAL INFORMATION</td></tr>
<tr><td><font color='red' size='3'>*</font>SURNAME</td><td>:</td><td><input type='text' name='surname' size='30' maxlength='50' required='required' class=''></td></tr>
<tr><td><font color='red' size='3'>*</font>FIRST NAME</td><td>:</td><td><input type='text' name='firstname' size='30' maxlength='50' required='required'></td></tr>
<tr><td><font color='red' size='3'>*</font>MIDDLE NAME</td><td>:</td><td><input type='text' name='middlename' size='30' maxlength='50' required='required'></td></tr>
<tr><td>NAME EXTENSION</td><td>:</td><td><input type='text' name='nameextension' size='30' maxlength='50'></td></tr>
<tr><td><font color='red' size='3'>*</font>DATE OF BIRTH(mm/dd/yyyy)</td><td>:</td><td><input type='date' name='bdate' required='required'></td></tr>
<tr><td><font color='red' size='3'>*</font>BIRTHPLACE</td><td>:</td><td><input type='text' name='bplace' size='30' maxlength='200' required='required'></td></tr>
<tr><td><font color='red' size='3'>*</font>SEX</td><td>:</td><td>Male <input type='radio' name='sex' value='Male' required='required'> Female <input type='radio' name='sex' value='Female' required='required'></td></tr>
<tr><td><font color='red' size='3'>*</font>CIVIL STATUS</td><td>:</td><td><input type='radio' name='civstat' value='Single' required='required'  onclick='document.getElementById("civstaton").setAttribute("disabled","disabled");document.getElementById("civstaton").value = "";'> Single 
                            <br><input type='radio' name='civstat' value='Married' required='required'  onclick='document.getElementById("civstaton").setAttribute("disabled","disabled");document.getElementById("civstaton").value = "";'> Married 
                            <br><input type='radio' name='civstat' value='Annuled' required='required'  onclick='document.getElementById("civstaton").setAttribute("disabled","disabled");document.getElementById("civstaton").value = "";'> Annuled 
                            <br><input type='radio' name='civstat' value='Widowed' required='required'  onclick='document.getElementById("civstaton").setAttribute("disabled","disabled");document.getElementById("civstaton").value = "";'> Widowed 
                            <br><input type='radio' name='civstat' value='Seperated' required='required' onclick='document.getElementById("civstaton").setAttribute("disabled","disabled");document.getElementById("civstaton").value = "";'> Seperated 
                            <br><input type='radio' name='civstat' required='required' onclick='document.getElementById("civstaton").removeAttribute("disabled");'> Others, 
                            please specify here<br><input type='text' name='civstat' size='30' id='civstaton' disabled required='required'></td>
                            </tr>
<tr><td><font color='red' size='3'>*</font>CITIZENSHIP</td><td>:</td><td><input type='text' name='citizenship' size='30' maxlength='50' required='required'></td></tr>
<tr><td><font color='red' size='3'>*</font>HEIGHT (meter)</td><td>:</td><td><input type='number' name='height' size='30' maxlength='10' min='0' max='18' step='0.1' required='required'></td></tr>
<tr><td><font color='red' size='3'>*</font>WEIGHT (kilogram)</td><td>:</td><td><input type='number' name='weight' size='30' maxlength='10' min='0' max='300' step='0.1' required='required'></td></tr>
<tr><td><font color='red' size='3'>*</font>BLOOD TYPE</td><td>:</td><td><input type='text' name='bloodtype' size='30' maxlength='50' required='required'></td></tr>
<tr><td>GSIS ID NUMBER</td><td>:</td><td><input type='text' name='gsisno' size='30' maxlength='50'></td></tr>
<tr><td>PAG-IBIG ID NUMBER</td><td>:</td><td><input type='text' name='pagibigno' size='30' maxlength='50'></td></tr>
<tr><td>PHILHEALTH NUMBER</td><td>:</td><td><input type='text' name='philhealthno' size='30' maxlength='50'></td></tr>
<tr><td>SSS NUMBER</td><td>:</td><td><input type='text' name='sssno' size='30' maxlength='50'></td></tr>
<tr><td><font color='red' size='3'>*</font>RESIDENTIAL ADDRESS</td><td>:</td><td><textarea name='resadd' style='width:215px;height:100px;' maxlength='500' wrap='physical' style='resize:none' required='required'></textarea></td></tr>
<tr><td><font color='red' size='3'>*</font>ZIP CODE</td><td>:</td><td><input type='text' name='zipcode' size='30' maxlength='50' required='required'></td></tr>
<tr><td>TELEPHONE NUMBER</td><td>:</td><td><input type='tel' name='telno' size='30' maxlength='50'></td></tr>
<tr><td>E-MAIL ADDRESS(if any)</td><td>:</td><td><input type='email' name='emailadd' size='30' maxlength='50'></td></tr>
<tr><td>CELLPHONE NUMBER(if any)</td><td>:</td><td><input type='tel' name='cellno' size='30' maxlength='50'></td></tr>
<tr><td>AGENCY EMPLOYEE NUMBER</td><td>:</td><td><input type='text' name='agencyno' size='30' maxlength='50'></td></tr>
<tr><td>TIN</td><td>:</td><td><input type='text' name='tin' size='30' maxlength='50'></td></tr>
<tr><td colspan='3'><font color='red' size='5'>*</font>Required fields<center>    <input type='submit' name='submitbutton' value='Next'>&nbsp&nbsp&nbsp&nbsp<input   type='reset' value='Reset'></center></td></tr>
</table>
</form>
</center>

</body>


</html>

It appears you're creating a separate table for every user, which is a really bad idea, in almost every case.

Specifically, this isn't working because -- although you're creating the SQL that would create a table, you never actually use it. You're skipping straight to trying to insert a row into a table that doesn't exist.

Someone will jump in soon enough and tell you to use more-modern PHP mysql interfaces (mysqli or PDO). They're right, but just to suggest better logic for the setup you have:

$surnamex = mysql_real_escape_string($_POST["surname"]);
$firstnamex = mysql_real_escape_string($_POST["firstname"]);
$middlenamex = mysql_real_escape_string($_POST["middlename"]);
$nameextensionx = mysql_real_escape_string($_POST["nameextension"]);
$bdatex = mysql_real_escape_string($_POST["bdate"]);
$bplacex = mysql_real_escape_string($_POST["bplace"]);
$sexx = mysql_real_escape_string($_POST["sex"]);
$civstatx = mysql_real_escape_string($_POST["civstat"]);
$citizenshipx = mysql_real_escape_string($_POST["citizenship"]);
$heightx = mysql_real_escape_string($_POST["height"]);
$weightx = mysql_real_escape_string($_POST["weight"]);
$bloodtypetx = mysql_real_escape_string($_POST["bloodtype"]);
$gsisnox = mysql_real_escape_string($_POST["gsisno"]);
$pagibignox = mysql_real_escape_string($_POST["pagibigno"]);
$philhealthnox = mysql_real_escape_string($_POST["philhealthno"]);
$sssx = mysql_real_escape_string($_POST["sssno"]);
$resaddx = mysql_real_escape_string($_POST["resadd"]);
$zipcodex = mysql_real_escape_string($_POST["zipcode"]);
$telnox = mysql_real_escape_string($_POST["telno"]);
$emailaddx = mysql_real_escape_string($_POST["emailadd"]);
$cellnox = mysql_real_escape_string($_POST["cellno"]);
$agencynox = mysql_real_escape_string($_POST["agencyno"]);
$tin = mysql_real_escape_string($_POST["tin"]);

$uid = mysql_real_escape_string($uid);

if($_POST['submitbutton'] == "submit")
{
  // a single "users" table, with one row per user, including the uid

  $sql = "CREATE TABLE if not exist users
        ( _key INT NOT NULL AUTO_INCREMENT,
        uid TEXT(50) NOT NULL
        , surname  TEXT(50) NOT NULL DEFAULT '?'
        , firstname  TEXT(50) NOT NULL DEFAULT '?'
        , middlename  TEXT(50) NOT NULL DEFAULT '?'
        , nameextension  TEXT(50) NOT NULL DEFAULT '?'
        , bdate  DATE NOT NULL DEFAULT '?'
        , bplace  TEXT(200) NOT NULL DEFAULT '?'
        , sex  TEXT NOT NULL DEFAULT '?'
        , civstat  TEXT NOT NULL DEFAULT '?'
        , citizenship  TEXT(50) NOT NULL DEFAULT '?'
        , height  INT(10) NOT NULL DEFAULT '?'
        , weight  INT(10) NOT NULL DEFAULT '?'
        , bloodtype  TEXT(50) NOT NULL DEFAULT '?'
        , gsisno  TEXT(50) NOT NULL DEFAULT '?'
        , pagibigno  TEXT(50) NOT NULL DEFAULT '?'
        , philhealthno  TEXT(50) NOT NULL DEFAULT '?'
        , sssno  TEXT(50) NOT NULL DEFAULT '?'
        , resadd  TEXT(500) NOT NULL DEFAULT '?'
        , zipcode  TEXT(50) NOT NULL DEFAULT '?'
        , telno  INT(20) NOT NULL DEFAULT '?'
        , emailadd  TEXT(50) NOT NULL DEFAULT '?'
        , cellno  int(20) NOT NULL DEFAULT '?'
        , agencyno  TEXT(50) NOT NULL DEFAULT '?'
        , tin  TEXT(50) NOT NULL DEFAULT '?'
        , PRIMARY KEY (_key))";

        mysql_query($sql) or die (mysql_error());

        $query="INSERT INTO users (uid, surname,firstname,middlename,nameextension,bdate,bplace,sex,civstat,citizenship,height,weight,bloodtype,gsisno,pagibigno,philhealthno,sssno,resadd,zipcode,telno,emailadd,cellno,agencyno,tin)VALUES('$uid',$surnamex','$firstnamex','$nameextensionx','$bdatex','$bplacex','$sexx','$civstatx','$citizenshipx','$heightx','$weightx','$bloodtypex','$gsisnox','$pagibignox','$philhealthnox','$sssnox','$resaddx','$zipcodex','$telnox','$emailaddx','$cellnox','$agencynox','$tinx')";

        mysql_query($query) or die (mysql_error());
        echo "The user $uid has been succesfully registered.";

}

Are you creating a table $uid for each user? If that's the case, you have picked a wrong way for storing user information. My suggestion is first create a table like you have already defined above and add one more column indicating username then store user information in each row of that table.

Also in the structure of the table you are defining there are several errors. For example a TEXT type column cannot have default value.

One more thing, try to have the column name between backtick (`) characters. In some cases you may have picked a name which is a function or some predefined name in mysql and that may cause problem.

Also you have not ran the mysql_query on the $sql variable.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM