Php 如何从下拉列表中发布多个值
我有一个html表单,可以选择多个值。当我发布这些值时,这些值必须以文本形式存储在数据库表中的列下,以逗号分隔。但它抛出一个错误,如下所示。 错误:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,了解第2行“1”、“移动硬件、Android”、“Android SDK”、“印地语”、“是”、“是”、“1234”附近使用的正确语法 我的HTML:Php 如何从下拉列表中发布多个值,php,html,mysql,Php,Html,Mysql,我有一个html表单,可以选择多个值。当我发布这些值时,这些值必须以文本形式存储在数据库表中的列下,以逗号分隔。但它抛出一个错误,如下所示。 错误:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,了解第2行“1”、“移动硬件、Android”、“Android SDK”、“印地语”、“是”、“是”、“1234”附近使用的正确语法 我的HTML: <label for="cc">Any 2 Certification courses</label> &
<label for="cc">Any 2 Certification courses</label>
<input name="cc" type="text" placeholder="course1,course2">
<br>
<label for="pls">Programming Language Skills</label>
<select multiple name="pls" class="pure-input-1-2">
<option>C</option>
<option>C++</option>
<option>Java</option>
<option>HTML</option>
<option>Javascript</option>
<option>CSS</option>
<option>PHP</option>
<option>SQL</option>
<option>.NET</option>
<option>Android SDK</option>
<option>others</option>
</select>
<br>
您需要使用
foreach()
之类的方法循环$\u POST['pls']
返回的数组
$str = '';
foreach($_POST['pls'] as $vals) {
$str .= $vals . ' ';
}
$newstr = mysqli_real_escape_string($con, $str);
echo rtrim($newstr, ' '); //strips out last space
或者在使用
mysqli\u real\u escape\u string()
之前去掉空格,您需要使用foreach()
之类的方法循环$\u POST['pls']
返回的数组
$str = '';
foreach($_POST['pls'] as $vals) {
$str .= $vals . ' ';
}
$newstr = mysqli_real_escape_string($con, $str);
echo rtrim($newstr, ' '); //strips out last space
或者在使用
mysqli\u real\u escape\u string()
您的选择名称应类似于PHP中的数组以访问多个值,请按如下方式更改您的选择名称:
<select multiple name="pls[]" class="pure-input-1-2">
否则,您将只获得一个值。您的选择名称应类似于PHP中的数组。若要访问多个值,请按如下所示更改您的选择名称:
<select multiple name="pls[]" class="pure-input-1-2">
否则,您将只获得一个值。您是否尝试过
var\u dump
您的$\u POST['pls']
以查看它返回什么?它返回一个数组。你能添加/显示你的query@NaveenThally已添加我的查询too@N0062eclipse''$hoa'一个额外的报价,并且还缺少您是否能够获得您试图var\u dump
您的$\u POST['pls']
以查看它返回的值?它返回一个数组。你能添加/显示你的query@NaveenThally已添加我的查询too@N0062eclipse'$hoa'一个额外的引号,并且还缺少您是否能够获取值这是否意味着我必须将数据库中的列名更改为“str”?我的意思是它是如何存储到表中的?@N0062eclipse$str
是一个变量,您可以保留任何您想要的内容,$newstr
保存连接的字符串,您也可以使用,
而不是空格…进入该列的列名和变量名是相同的。“请”。因此,只需存储在一个临时的“newstr”中,当我使用INSERT-INTO$tblname(pls)值(“$newstr”)@N0062eclipse是的,确切地说,尝试一下,还要确保在保存到dbI之前,使用rtrim
修剪最后一个空间。使用单个值尝试过,并且成功更新了数据库,但没有使用pls[]ie作为数组。但问题字段在数据库表中留空是否意味着我必须将数据库中的列名更改为“str”?我的意思是它是如何存储到表中的?@N0062eclipse$str
是一个变量,您可以保留任何您想要的内容,$newstr
保存连接的字符串,您也可以使用,
而不是空格…进入该列的列名和变量名是相同的。“请”。因此,只需存储在一个临时的“newstr”中,当我使用INSERT-INTO$tblname(pls)值(“$newstr”)@N0062eclipse是的,确切地说,尝试一下,还要确保在保存到dbI之前,使用rtrim
修剪最后一个空间。使用单个值尝试过,并且成功更新了数据库,但没有使用pls[]ie作为数组。但数据库表中有问题的字段留空啊,我错过了该部分,如果我想发送添加输入框,用户在其中输入逗号分隔的值,我需要添加“pls[]”吗?我尝试使用单个值,但数据库已成功更新,没有使用pls[]ie作为数组。如果用户在单个输入框中用逗号分隔值,不需要使用[]来创建数组。仅当在同一nam下发送多个值时才使用它。例如,如果有一组复选框彼此相关,则它们共享相同的名称,并且该名称将包含[],如果它们彼此不相关,则它们的名称无论如何都应该不同,并且您不需要[]。您可以使用[]以相同的名称发送多个值。然后php将其视为一个数组,您可以使用特定于数组的运算符、循环等访问每个元素。啊,我错过了该部分,如果我打算发送添加输入框,用户在其中输入逗号分隔的值,我需要添加“pls[]”吗?我尝试使用单个值,数据库已成功更新,没有使用pls[]ie,作为数组。如果用户在单个输入框中用逗号分隔值,则不需要使用[]生成数组。仅当在同一nam下发送多个值时才使用它。例如,如果有一组复选框彼此相关,则它们共享相同的名称,并且该名称将包含[],如果它们彼此不相关,则它们的名称无论如何都应该不同,并且您不需要[]。您可以使用[]以相同的名称发送多个值。然后php将其视为一个数组,您可以使用特定于数组的运算符、循环等访问每个元素。。。。