我有一个由2页组成的应用程序。其中一个页面为会话生成一个3个字母的Id,它允许用户在文本框中键入他们需要的多个会话,并且在文本框中也可以输入会话所需的总标记。
当提交该页面时,它将进入下一页,同时执行此操作将在数据库中插入这些详细信息。现在,如果用户只需要一个会话,那么将细节插入数据库表就可以完美地工作。以下是一个例子:
示例:如果会话为“ABA”,会话数为“1”且总标记为“20”,则会在会话数据库表中插入如下所示的行:
SessionId TotalMarks
ABA 20
但我想遇到的问题如下:
让我们说我们有相同的会话ID'ABA',总分数仍然是'20',但区别在于用户希望会话数为3,那么我希望将其插入表中行:
SessionId TotalMarks
ABA1 20
ABA2 20
ABA3 20
正如您所看到的那样,我们有多个会话,它在每个会话旁边都包含一个数字,ABA1表示这是第一个会话,ABA2表示它是第二个会话,ABA3表示它是第三个会话。由于用户已声明总标记为“20”,因此所有会话行都包含此标记。
所以我的问题是如何才能获得它,以便如果有多个会话,那么在每个sessionId旁边添加一个数字以及所有这些会话的总分数?但是,如果用户只想要1个会话数,那么它仍然与当前显示3个字母sessionId并且旁边没有数字的会话相同吗?
以下是在会话表中插入SessionId和TotalMarks的INSERT VALUES代码:
$sql="INSERT INTO Session (SessionId, TotalMarks)
VALUES
(' ". mysql_real_escape_string( $_POST['id'] ) . "',' ". mysql_real_escape_string( $_POST['textMarks'] ) . "')";
mysql_query($sql);
以下是包含3个字母的SessionId,会话数量文本框和总标记文本框的表单代码:
<form action="QandATable.php" method="post" id="sessionForm">
<p><strong>1: Your Session ID: </strong><?php echo $id; ?></p>
<input type='hidden' name='id' value='<?php echo $id; ?>' />
<p><strong>2: Number of Sessions you Require:</strong> <input type="text" id="sessionNo" name="sessionNum"/></p>
<p><strong>3: Total Marks: </strong><input type="text" id="txtMarks" name="textMarks" /></p>
</form>
答案 0 :(得分:0)
这样的事情应该是你所需要的:
<?php
// Reset the array
$insert = array();
// Iterate over the number of desired sessions and add the relevant INSERT VALUES
for ($i = 1, $n = $_POST['sessionNum']; $i <= $n; ++$i)
{
$insert[] = "'" . mysql_real_escape_string($_POST['id']) . $i . "', '" . mysql_real_escape_string($_POST['textMarks']) . "'";
}
// Create the SQL string
$sql = "INSERT INTO `Session` (`SessionId`, `TotalMarks`) VALUES (" . implode('), (', $insert) . ")";
// Perform the query
mysql_query($sql);