<script type="text/javascript"> function showfield(name){ if(name=='Other')document.getElementById('div1').innerHTML='other: <input type="text" name="other" />'; else document.getElementById('div1').innerHTML=''; } </script> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href = "css/bootstrap.min.css" rel = "stylesheet"> <title> Insert</title> </head> <body> <h1>Insert Data In to Db</h1> <form action="teachersubmit.php" method="post" id="form"> <input type="hidden" name="submitted" value ="true" /> <label> School Code: <input type="text" name="scode" /></label> <label> Category: <input type="text" name="category" /></label> <label> name: <input type="text" name="sname" /></label> <label> Address: <input type="text" name="sadd"></label><br> <label> name: <select name="gender" id="gender"> <option value="male">male</option> <option value="female">female</option> <option value="Other">Other</option> </select></label> <div id="div1"></div> <button type="submit" form="form" value="Submit">Submit</button> </form> if (isset($_POST ['submitted']) ){ $con = mysqli_connect("localhost","root","","school"); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } if(!empty($_POST['other'])) { $sname=$_POST['sname']; $scode=$_POST['scode']; $category=$_POST['category']; $sadd=$_POST['sadd']; $gender=$_POST['other']; $sqlinsert= "INSERT INTO form1 (sname,scode,category,sadd,gender) VALUES ('$sname' , '$scode', '$category', '$sadd', '$gender')"; if(!mysqli_query($con, $sqlinsert)){ die ('not inserted'); }} else{ $sname=$_POST['sname']; $scode=$_POST['scode']; $category=$_POST['category']; $sadd=$_POST['sadd']; $gender=$_POST['gender']; $sqlinsert= "INSERT INTO form1 (sname,scode,category,sadd,gender) VALUES ('$sname' , '$scode', '$category', '$sadd', '$gender')"; if(!mysqli_query($con, $sqlinsert)){ die ('not inserted'); } }
Решено ….. спасибо всем, что помогло мне просто поставить условие, что если это скрытое поле пуст, тогда возьмите значение выпадающего списка, а если нет, то возьмите значение текстового поля …… ура 🙂
Это структура базы данных:
sname varchar(100) category varchar(100) sadd varchar(100) scode varchar(20) gender varchar(100)
Value
отсутствует в option
, это причина выпадающего значения, не публикующая форму формы, а не сохранение в базе данных
<option>male</option> <option>female</option>
Это было бы
<option value="male">male</option> <option value="female">female</option>
Чтобы проверить ошибку в запросе, прочитайте
http://php.net/manual/en/mysqli.error.php
Ваш код открыт для SQL-инъекции. Прочтите это, чтобы предотвратить его формирование.
Как я могу предотвратить SQL-инъекцию в PHP?
РЕДАКТИРОВАНИЕ
Данные не вставлены, потому что sname,scode,category,sadd
являются integer type
в базе данных, и вы пытаетесь вставить character
ALTER sname,scode,category,sadd
поданный как varchar
в вашу базу данных