【问题标题】:how to update mysql with inputs and checkboxes如何使用输入和复选框更新 mysql
【发布时间】:2010-04-02 08:43:12
【问题描述】:

并且使用这种形式:(select * from mp3 aktif = '0')

<form name="form" method="post">
<input readonly type="text" name="id" value="<?=$haciosman['id']?>" />
<input type="text" name="baslik" value="<?=$haciosman['baslik']?>
<input type="checkbox" name="secilen[]" value="<?=$haciosman['id']?>">
<input type="submit" name="onay" value="Onayla" />

我可以为我检查的每一行设置“aktif 为 1”。但我也想更新“baslik”!我如何使用该 php 代码更新每个“baslik”?

【问题讨论】:

  • 谷歌站点:stackoverflow Sql 注入。
  • 天哪,我知道它有注射,但它只是本地的东西。不公开
  • 仅供参考,非英文变量名真的很难阅读。至少让我头疼。也许这就是为什么没有答案?
  • @commentators-and-possible-answerers:也许他之前的问题有助于理解上下文:stackoverflow.com/questions/2563765/…
  • @Ronnie:也许您的示例应该反映您的真实代码。或者也许您应该参考原始问题,这似乎是重复的。

标签: php mysql html checkbox


【解决方案1】:

如果我理解正确,你想这样做:

mysql_query("UPDATE mp3 
             SET 
                 aktif = '1', 
                 baslik = '" . mysql_escape_string($_POST['baslik']) ."' 
             WHERE id = '$zuha'");

但这与您在original question 中已有的类似:

mysql_query("update mp3 set aktif = '1', 
                              baslik = '$_POST[baslik]' 
               where id = '$_POST[id]'")

现在唯一的区别是您在循环中进行查询并使用不同的 ID 变量。

我在原始问题中的代码中的 cmets 保持不变。 ( ;) )

P.S.:引入mysql_escape_string() 是为了一点安全性。

更新:好的,我想我现在解决了您的问题。您基本上想为数据库中的每个条目创建一个输入字段集合,如下所示:

<form name="form" method="post">
<table>

<?php while($haciosman = ($query)):?>
<tr>
   <td><input readonly type="text" name="id" value="<?=$haciosman['id']?>" /></td>
   <td><input type="text" name="baslik[<?php echo $haciosman['id'] ?>]" value="<?=$haciosman['baslik']?> </td>
   <td><input type="checkbox" name="secilen[]" value="<?=$haciosman['id']?>">

</tr>
<?php endwhile; ?> 

</table>
<input type="submit" name="onay" value="Onayla" />
</form>

您只需将另一个文本字段的名称定义为数组baslik[$haciosman['id']],与您为复选框所做的类似,但这次您指定数组键,即记录的 ID。

然后你的 PHP 代码可以像这样访问这个数组($_POST['baslik'] 现在包含一个数组):

if (isset($_POST['onay'])) {
  foreach  ($_POST['secilen'] as $zuha) {
    $olay = mysql_query("UPDATE mp3 
                         SET 
                            aktif = '1', 
                            baslik = '" . mysql_escape_string($_POST['baslik'][$zuha]) ."' 
                         WHERE id = '$zuha'");
  }
}

更新 2:

您真的应该阅读official short introduction to forms,点击本文中的链接并阅读官方文档以更深入地了解如何使用 PHP。

【讨论】:

  • 是的,但这不会更新每一行。它只更新一行。我有 3 行。当我使用此查询时,baslik 正在重复。让我们换个词! “baslik”是“NAME”好吗?我有3行!我想编辑 3 行的名称。当我点击提交时,3 行得到相同的名称
  • @Ronnie Chester Lynwood:他们当然会这样做,因为您只有一个 NAME 输入字段。如果要每三个名称更新一次,则必须提供三个名称输入字段,类似于选择框。
  • while ($haciosman = mysql_fetch_array($veliaht)) { ?> =$haciosman['sarkisozu']?> =$haciosman ['ekleyen']?> } ?> 我正在使用这个
  • @Ronnie Chester Lynwood:我创造了一些类似的东西。看看我更新的答案并进行比较。
  • 终于! 这样就成功了!非常感谢您的帮助!我保证我会尽可能多地阅读。谢谢!!
猜你喜欢
相关资源
最近更新 更多
热门标签