未定义的索引错误&数据不会进入数据库

时间:2014-09-07 00:31:39

标签: php mysql xampp

我真的需要你的帮助,我正在尝试用她的项目来帮助朋友。我们有两个问题

网络表单有多个复选框供一个人选择他们想要的服务类型。 如果我只检查一个框并单击提交,我将收到“通知:第13行的未定义索引 到23的代码。我不知道如何解决这个问题,我尝试过使用“if isset” 但不确定如何将其应用于多个复选框,

这里的另一个问题是我们选中一个复选框并填写表格以获取联系信息 但没有数据写入数据库。

这是php代码     

mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());
mysql_select_db($dbname);

$S_id= $_POST['s_id'];
$oral= $_POST['a'];
$lc= $_POST['b'];
$temp= $_POST['c'];
$adult= $_POST['d'];
$child= $_POST['e'];
$dent_rem= $_POST['f'];
$dent_por= $_POST['g'];
$jack_plastic= $_POST['h'];
$jack_por= $_POST['i'];
$brace= $_POST['j'];
$retainer= $_POST['k'];
$P_id= $_POST['p_id'];
$fname= $_POST['fname'];
$lname= $_POST['lname'];
$age= $_POST['age'];
$mobile= $_POST['mobile'];
$address= $_POST['address'];
$date= $_POST['date'];
if(isset ($_POST['a'])){ $oral= $_POST['a'];}


if ($oral== '' || $lc== '' || $temp== '' || $adult== '' || $child== '' || $dent_rem== '' ||       $dent_por== '' || $jack_plastic== '' ||
    $jack_por== '' || $brace== '' || $retainer== '' || $fname== '' || $lname== '' ||      $age== '' ||  $mobile== '' || $address== ''
|| $date== '' || $treatment== ''){

die('Error: ' . mysql_error());}

   else{

  $insert1= "INSERT INTO patient_info (P_id, first_name, last_name, age, mobile_num , address) 
  VALUES ('$id', '$fname', '$lname', '$age', '$mobile', '$address')";

  $insert2= "INSERT INTO services (S_id, oral_prophylaxis, lc_filling, temp_filling,              adult_extract, child_extract,
                            dental_removable, dental_porcelain, jacket_plastic, jacket_porcelain, braces, retainer, date) 
                            VALUES   ('$oral', '$lc', '$temp', '$adult','$child', '$dent_rem', '$dent_por', '$jack_plastic', '$jack_por',
                                    '$brace', '$retainer', '$date')";
    $count1 = mysql_query($insert1);
    $count2 = mysql_query($insert2);
  }

  /*
  $count1 = mysql_query($insert1);
  $count2 = mysql_query($insert2);

  if (($count1==0) && ($count2 == 0)){
die('Error: ' . mysql_error());
}
else {
    header('location:index1.php');
}
   */
   ?>

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

仅将选中的复选框发送到服务器。不会设置所有其他参数。所以你需要使用isset()

$oral = isset($_POST['a']) ? $_POST['a'] : '';
$lc= isset($_POST['b']) ? $_POST['b']: '';
...