Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 错误:1265:列分解字符串的数据被截断_Php_Html_Mysql - Fatal编程技术网

Php 错误:1265:列分解字符串的数据被截断

Php 错误:1265:列分解字符串的数据被截断,php,html,mysql,Php,Html,Mysql,我对任何类型的编程都相当陌生。我会说,我已经参与了大约6-8个月,所以如果我问了一个愚蠢的问题或使用了错误的术语,请原谅我 我正在为一个MySQL班做学校作业。它是一个用于视频商店的简单web应用程序。我创建了一个非常简单的表单,它的数据应该发布到sql数据库中。到目前为止,我已经成功了。但是,我试图将两个值从一个单选按钮选择传递到数据库表中的两个单独字段。我尝试使用PHP的explode()函数,然后在SQL insert语句中使用保存结果数组的变量。到目前为止,我一直不成功 我得到以下三个错

我对任何类型的编程都相当陌生。我会说,我已经参与了大约6-8个月,所以如果我问了一个愚蠢的问题或使用了错误的术语,请原谅我

我正在为一个MySQL班做学校作业。它是一个用于视频商店的简单web应用程序。我创建了一个非常简单的表单,它的数据应该发布到sql数据库中。到目前为止,我已经成功了。但是,我试图将两个值从一个单选按钮选择传递到数据库表中的两个单独字段。我尝试使用PHP的explode()函数,然后在SQL insert语句中使用保存结果数组的变量。到目前为止,我一直不成功

我得到以下三个错误:

1.)注意:第38行C:\wamp64\www\Final\u Project\rent.php中的未定义索引:rtx[0]

2.)注意:第38行C:\wamp64\www\Final\u Project\rent.php中的未定义索引:rtx[1]

3.)错误:1265:第1行“租金”列的数据被截断

第38行是包含sql insert语句的行

表单的HTML(单选按钮)

 <div class="form-group"> 
    <label class="col-sm-2 control-label">Rental type</label> 
    <div class="col-sm-4">
      New release <input name="Rental_type" type="radio" value="6.99,2.99" checked="checked" action="">
      Standard <input name="Rental_type" type="radio" value="4.99,1.99" action="">
    </div>
最后是sql insert语句。

 $sql = "INSERT INTO rental_table (Cust_id, Movie_id, Check_out_date, Return_due_date, Rental_fee, Per_diem_late_fee, Last_updated) VALUES ('{$mysqli->real_escape_string($_POST['Cust_id'])}', '{$mysqli->real_escape_string($_POST['Movie_id'])}', '{$mysqli->real_escape_string($_POST['Check_out_date'])}', '{$mysqli->real_escape_string($_POST['Return_due_date'])}', '{$mysqli->real_escape_string($_POST['rtx[0]'])}', '{$mysqli->real_escape_string($_POST['rtx[1]'])}', '{$mysqli->real_escape_string($_POST['Last_updated'])}')";


 $insert = $mysqli->query($sql);




 // Print response from MySQL
  if ( $insert ) {
    echo "Success!";
  } else {
    die("Error: {$mysqli->errno} : {$mysqli->error}");
  }

  // Close our connection
  $mysqli->close();

我是一个长期潜伏者,第一次发帖。我将感谢任何帮助

您正在使用
$\u POST['rtx[0]]
,但您在POST变量中没有类似的索引,因此,请按如下方式使用
$rtx[0]

$sql = "INSERT INTO rental_table (
    Cust_id, Movie_id, Check_out_date, Return_due_date, Rental_fee, Per_diem_late_fee, Last_updated
) VALUES (
'{$mysqli->real_escape_string($_POST['Cust_id'])}',
'{$mysqli->real_escape_string($_POST['Movie_id'])}',
'{$mysqli->real_escape_string($_POST['Check_out_date'])}',
'{$mysqli->real_escape_string($_POST['Return_due_date'])}',
'{$mysqli->real_escape_string($rtx[0])}',
'{$mysqli->real_escape_string($rtx[1])}',
'{$mysqli->real_escape_string($_POST['Last_updated'])}'
)";
请尝试以下方法:

<div class="form-group"> 
<label class="col-sm-2 control-label">Rental type</label> 
<div class="col-sm-4">
  New release <input name="Rental_type" type="radio" value="new" checked="checked" action="">
  Standard <input name="Rental_type" type="radio" value="std" action="">
</div>
现在,获取post var并从数组中调用值

$val1 = $var[$_POST['Rental_Type'][0];
$val2 = $var[$_POST['Rental_Type'][1];
--用它做点什么


最终,您将要从某个数据库或数据文件中提取这些类型的值,最好现在就开始这样做。

与其将您的值编码到收音机中,不如对收音机进行编码,以便您传回的值只告诉您正在查看的类型。然后在php中,根据单选按钮发送给您的内容从数组中提取货币值。这就像一个符咒。非常感谢。我还对传递到变量$rt中的值进行了清理,然后将其传递到explode函数中。我不完全确定这是否必要;然而,我已经达到了预期的目的。非常感谢。
$var =  array(
    'std' => array ('4.99', '1.99'),
    'new' => array ('6.99', '2.99')
);
$val1 = $var[$_POST['Rental_Type'][0];
$val2 = $var[$_POST['Rental_Type'][1];