【问题标题】:setting up sql column for multiple values to store check box values为多个值设置 sql 列以存储复选框值
【发布时间】:2014-03-06 23:43:42
【问题描述】:

我想将最少 1 个和最多 9 个复选框值存储到我的数据库中。

我需要什么值才能在 sql 中创建列以便将值插入其中。

我也应该不能只用 name="value" 来获取每个值吗?

php:

    $description = pathinfo(__FILE__, PATHINFO_FILENAME);  
    $filename = date('Ymdhis').".pdf"; 
    $username = $_SESSION['username']; 


       $sql = "INSERT INTO documents (id, userid, description, name, date) VALUES (NULL, {$_SESSION['id']}, '{$description}' ,'{$filename}', NOW())"; 
  $success = mysql_query($sql);  
$sql2 = "INSERT INTO sprintvisioncc (first_name, last_name, email, telephone, truck_number, truck_mileage, market, carrier, site_number, time_in, time_out, stany_by, foreman, climber1, climber2, resources, issued, issues, root, action, release, materials, remaining, close_out, lat, longitude, comments, job_completion) VALUES  ( '" . $_POST['first_name'] . "', '" . $_POST['last_name'] . "', '" . $_POST['email'] . "', '" . $_POST['telephone']. "', '" . $_POST['truck_number'] . "', '" . $_POST['truck_mileage'] . "', '" . $_POST['market'] . "', '" . $_POST['carrier'] . "', '" .$_POST['site_number'] . "', '" . $_POST['time_in'] . "', '" . $_POST['time_out'] . "', '" . $_POST['stand_by'] . "', '" . $_POST['foreman']  . "', '" . $_POST['climber1']  . "', '" . $_POST['climber2']  . "', '" . $_POST['resources']  . "', '" . $_POST['issued']  . "', '" . $_POST['issues']  . "', '" . $_POST['root']  . "', '" . $_POST['action']  . "', '" . $_POST['release']  . "', '" . $_POST['materials']  . "', '" . $_POST['remaining'] . "', '" . $_POST['close_out']  . "', '" . $_POST['lat']  . "', '" . $_POST['longitude'] . "', '" . $_POST['comments'] . "', '" . $_POST['job_completion'] . "')";
 $success2 = mysql_query($sql2);  

形式: 提供清仓 *

<tr bgcolor="#E1E1E1">
 <td valign="top">
<label>Pre Alarm Screen Shots</label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out" value="Post Alarm Shots">
 </td>
</tr>

<tr>
 <td valign="top">
<label>Post Alam Screen Shots</label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out" value="Pre Alarm Shots">
 </td>
</tr>

<tr bgcolor="#E1E1E1">
 <td valign="top">
<label>Pre Photos</label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out" value="Pre Photos">
 </td>
</tr>

<tr>
 <td valign="top">
<label>Post Photos</label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out" value="Post Photos">
 </td>
</tr>

<tr bgcolor="#E1E1E1">
 <td valign="top">
<label>Pre Sweeps</label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out" value="Pre Sweeps">
 </td>
</tr>

<tr>
 <td valign="top">
<label>Post Sweeps</label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out" value="Post Sweeps">
 </td>
</tr>

<tr bgcolor="#E1E1E1">
 <td valign="top">
<label>Pre Fiber Test</label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out" value="Pre Fiber Test">
 </td>
</tr>

<tr>
 <td valign="top">
<label>Post Fiber Test</label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out" value="Post Fiber Test">
 </td>
</tr>

<tr bgcolor="#E1E1E1">
 <td valign="top">
<label>NTP1 Form</span></label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out" value="NTP1 Form">
 </td>
</tr>

【问题讨论】:

  • 好吧,您的复选框名称需要在名称末尾使用数组表示法,否则它们将相互覆盖,您只会得到一个值,name="close_out[]"
  • 你希望计算机如何理解你想要的任何一个复选框
  • 好的,请告诉我最好的方法。我以前从未在这样的表格中输入复选框。
  • 当您决定在一个字段中存储多条数据时,您应该重新考虑您的数据库方法
  • 你必须为这些复选框设置不同的名称

标签: php sql forms checkbox


【解决方案1】:

表格应该是这样的

<tr>
 <td valign="top">
<label>Post Sweeps</label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out1" value="Post Sweeps">
 </td>
</tr>

<tr bgcolor="#E1E1E1">
 <td valign="top">
<label>Pre Fiber Test</label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out2" value="Pre Fiber Test">
 </td>
</tr>

<tr>
 <td valign="top">
<label>Post Fiber Test</label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out3" value="Post Fiber Test">
 </td>
</tr>

<tr bgcolor="#E1E1E1">
 <td valign="top">
<label>NTP1 Form</span></label>
 </td>
 <td valign="top">
<input type="checkbox" name="close_out4" value="NTP1 Form">
 </td>
</tr>

而php应该是这样的

for($i=1;$i>=4;$i++)
{
if(isset($_POST["close_out".$i])) 
  ${"close_out".$i}=1;
else
  ${"close_out".$i}=0;
}

并使用$close_out1,..,$close_out4进入数据库

【讨论】:

  • 所以选择布尔值然后给它一个值0?或 null 还是什么?
  • 如果你愿意,你可以将其更改为 null,或者例如是和否
  • 看看你想在数据库中保存什么
  • 我是这么说的,如果我将它设置为 null,然后就不要在值框中输入任何内容?除非选中一个框,否则它将为空?然后在复选框表单的值中将所有值设为 1?
  • 不,这将在脚本中,我的意思是在通过 php 文件提交表单后 :)
猜你喜欢
  • 2017-01-08
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多