【发布时间】:2019-01-31 01:26:24
【问题描述】:
这只是我的第二个项目,非常新,所以请原谅我的杂乱代码。 我正在尝试从 MySQL 生成一个带有附加输入列的表。在此列中,我希望能够输入一个数字,如果有意义,该数字将添加到原始 MySQL 表“分数”中。由于不同的玩家参与,每次新游戏开始(而非手牌)时,该表都会被删除和创建。在放下桌子之前,每只手的输入最多可能发生 50 次。 查看代码是否更有意义。应该很简单,我现在无法理解它。
<?php // defined variables to remove errors
$submit = 'add_scores';
$name = $message = "";
$hand = 0;
$array = $index = "";
$datatable = "cards_players"; // MySQL table name
?>
<?php
if (isset($_POST[$submit])) {
//this is where my insert statement will go
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" class="formAcc">
<ul style= "text-align: center">
<article>
<li>
<label>Current Standing</label>
<?php
$datatable = "cards_data"; // MySQL table name
$sql = "SELECT * FROM ".$datatable." WHERE player IS not NULL ORDER BY id ASC";
$rs_result = $connection->query($sql);
// Check connection
if ($connection->connect_error) {
die("Connection failed: " . $connection->connect_error);
}
?>
<?php
echo '<table id="db_results">
<colgroup>
<col class="col15" />
<col class="col15" />
<col class="col15" />
<col class="col20" />
</colgroup>
<tr>
<th>Name</th>
<th>Previous Score</th>
<th>Current Score</th>
<th>This Hand</th>
</tr>';
while($row = $rs_result->fetch_assoc()) {
echo "<tr class=\"center\">
<td>". $row["player"] . "</td>
<td>". $row["previous_score"] . "</td>
<td>". $row["score"] . "</td>
<td>"//. retain_fill ('text','hand','',$hand,'0') ."
. '<input type="text" name="'.$row["player"].'" placeholder="';
if (!empty($hand)) {echo $hand. '" value="'.$hand.'"/>';
}
else {echo 0 . '" value=""/>';}
"</td>
</tr>";
}
echo "</table>";
?>
</li>
<li>
<input type="submit" name="<?php echo $submit?>" value="Input Scores" style="margin-top: 5px;"/>
目前我什至不确定如何为每个用户开始插入语句,因为我知道这将是某种循环。任何帮助表示赞赏:-)
【问题讨论】:
-
我不太确定我是否理解您的问题。您有一个输入字段,这导致无处可去。您将需要以某种方式处理它。如果您想留在此页面上,我建议您使用 AJAX 调用。如果可以离开此页面,您可以制作另一个 PHP 文件,或者由每行中的表单调用,或者制作一个围绕表格的大表单,然后将它们作为一个整体进行处理。
-
您似乎正在通过播放器识别每一行。所以无论你做什么,你都需要另一个查询来从你的数据库中获取玩家,并为每个“名称”标识符迭代它,类似于你现在执行 while 循环的方式。
-
谢谢@kry 是的,我正在通过播放器识别每一行,它完美地生成了表格并在最后一列中创建了输入框。我有一个提交按钮,然后激活插入查询,页面将刷新到数据库中的新数据以进行下一次设置更新(冲洗并重复)。现在我可以通过例如使 $hand 成为保存数据的变量来完成这项工作,但它使所有玩家当然拥有相同的数量,因此它会用一个输入更新每个人(而不是每个玩家的不同输入)
-
您的提交按钮是链接到 JS AJAX 调用还是 PHP 调用?就个人而言,而不是给出 'name="$row['player']"' (搞砸了引号,我知道......),我会像 name="player['.$row['player'] .']",所以它会发送一个名为 player 的数组,其中 key->value 对是 $row['player'] 和 value="'.$hand.'"。
-
这种方式不仅更容易被视为人类,而且键也是唯一标识符,可以使用 foreach 循环进行迭代。
标签: php mysql input html-table