gpt4 book ai didi

php - 将值发布到数据库

转载 作者:行者123 更新时间:2023-11-29 13:22:00 26 4
gpt4 key购买 nike

我正在尝试将复选框中的一些值发布到我的数据库中,目前它确实发布了一个值,但仅发布了最后一个选定的值(我当前有 8 个复选框)。下面是我使用的获取复选框的内容:

<?
$data = mysql_query("SELECT * FROM members WHERE active='Yes' ORDER BY name") or die(mysql_error());

//And we display the results
while($result = mysql_fetch_array( $data ))
{
echo "<input type='checkbox' name='attendees[]'";
echo 'value="' . $result['name'] . '">';
echo "&nbsp;";
echo $result['name'];
echo "<br>";
}
?>

所以它们成功地显示在我的表单中,我可以勾选任意多个,但是当我检查数据库时,只显示最后一个。

我一直在阅读,似乎我需要将它们存储在一个数组中,但这是我发现很难理解的一点。

任何人都可以帮助我,使所有选定的值都显示在数据库中,而不仅仅是最后一个值吗?

编辑:太长,无法放入注释,因此这里是将值添加到数据库的代码

<?php

if(isset($_POST['submit']))
{
$date = $_POST['date'];
$score = $_POST['score'];
$attendees = $_POST['attendees'];

$result = mysql_query("INSERT INTO quiz_results (date, score, attendees)
VALUES ('$date','$score','$attendees')",$connect);
echo "<div class='alert alert-info'><b>Event Added!</b> - You'll will now be taken back to the previous page.</div>";
echo "<meta http-equiv=Refresh content=4;url=add-result.php>";
}//end of if($submit).

?>

最佳答案

$attendees = $_POST['attendees'];

$attendees 是一个数组。您不能简单地将 PHP 数组存储在数据库中而不首先将其转换为字符串。您可以将其存储为逗号分隔的列表:

if ( is_array($attendees) ) {
$attendees = implode(', ', $attendees);
}

但是,当“与会者”的姓名中包含逗号时会发生什么情况?您可以将其序列化:

if ( is_array($attendees) ) {
$attendees = serialize($attendees);
}

但是,无论哪种情况,当您想根据与会者过滤数据时会发生什么?现在你有更多的问题。

管理此数据的最佳方法(Google:数据库一对多关系)是将与会者存储在一个单独的表中,如下所示:

quiz_id    attendee_id
1 20
1 42
1 50

请参阅我的回答 how to select from database based on a match in category?举个例子。

关于php - 将值发布到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20689826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com