我有至少两个HTML表单中的选择框插入通过POST,但用户可以添加更多的选择框。现在我必须显示每个n和每个插入的id之间的关系。

就像我们插入了1,4,9,6 id。所以我想把它插入到表中的两列中,如下所示:
(1-4) (1-9) (1-6) (4-9) (4-6) (9-6)发布于 2016-10-26 19:24:45
$text = $_POST['text'];
$textname = explode(",", $text);
if ($textname > 0) {
for ($i = 0; $i < count($textname); $i++) {
"Piece $i = $textname[$i] <br />";
..... insert query....我在片段$i...how中获取POST值,以便将其插入到代码中的数组中
发布于 2016-10-26 23:23:01
这是我最初的答案,我认为这是问题的症结所在-如何从1、2、3、4、5生成配对(1-2) (1-3) (1-4) (1-5) (2-3) (2-4) (2-5) (3-4) (3-5) (4-5)。如果他/她需要帮助处理$_POST数组,我认为我们需要从海报中获得更多信息
$arrIDs = array(1, 2, 3, 4);
$intUpperLimit = max($arrIDs);
foreach($arrIDs as $ID) {
for($i = $ID + 1; $i <= $intUpperLimit; $i++) {
echo("INSERT INTO tblPairs VALUES($ID, $i)");
}
}如果这些值不像原始示例所建议的那样是连续的,则使用
$arrIDs = array(1,5,9,17);
foreach($arrIDs as $ID1) {
$arrUsedIDs[] = $ID1;
foreach(array_diff($arrIDs, $arrUsedIDs) as $ID2) {
echo("INSERT INTO similar_ailment (ailment,ailment1) VALUES($ID1, $ID2)");
}
} 要在数据库中插入两个值,您应该创建一个存储过程,例如
DROP PROCEDURE IF EXISTS `usp_insert_pair`;
DELIMITER $$
CREATE PROCEDURE `usp_insert_pair`(
IN p_intID1 INT,
IN p_intID2 INT,
OUT p_row_count INT
)
BEGIN
INSERT INTO tblPairs (intID1, intID1)
VALUES (p_intID1, p_intID1);
SELECT ROW_COUNT() INTO p_row_count;
END; $$
DELIMITER ;该过程将该对作为输入,并提供输出(这可能对您有所帮助,也可能不会对您有所帮助)。您可以将存储过程的调用合并到循环中
$arrIDs = array(1, 2, 3, 4);
$intUpperLimit = max($arrIDs);
foreach($arrIDs as $ID) {
for($i = $ID + 1; $i <= $intUpperLimit; $i++) {
mysqli_query($conn, "usp_insert_pair($ID, $i, @p_row_count, @p_insert_id)");
}
}当然,您首先需要设置到数据库的连接-这是$conn参数。在调用mysqli_query时,您应该检查操作是否成功。这里有很多选择。mysqli_query在失败时返回false,因此您可以检查返回的值
$bOutcome = mysqli_query($conn, "usp_insert_pair($ID, $i, @p_row_count, @p_insert_id)");
if (!$bOutcome) echo "row insert error for pair $ID, $i";如果insert不起作用,您可能希望退出
$rs = mysqli_query($conn, $strSQL) or Die("Error in usp_insert_pair: ". mysqli_error($conn));您可能希望检查返回的@intRowCount参数,以确保添加了一行(并且只添加了一行)。
$rs = mysqli_query($conn, 'SELECT @intRowCount')
$row = mysqli_fetch_row($rs);
if ($row[0] != 1) echo "row insert error for pair $ID, $i"; 你可以做更多的检查,但我尽量保持(相对)简短。
https://stackoverflow.com/questions/40260833
复制相似问题