我有几个表显示来自同一个表的数据但不是一个表中的所有数据,它们根据列名进行拆分。我还有单选按钮,供用户查看他们想要支持的团队。
我需要做的是,根据用户的选择,我想将该信息作为整数传递到数据库中。因此,如果用户选择家庭'并且点差为' 12'它应该以12的形式传递给用户选择'远离'和点差为' 12',它应该在表中传递为-12。
我有点理解如何在PHP中执行此操作,但我总共有9个桌子用于游戏,我不想坐在这里创建18个if语句,我想知道是否有更简单的方法来做到这一点。 / p>
<tr><b><h4>Game 1</h4></b>
<th>Home</th><th>Away</th>
</tr>
<?php
while ($row = mysql_fetch_array($rs)){?>
<tr>
<td><input type="radio" id="home1" name="game1" onchange="tip();" value="<?php'.$row['home1'].'?>" > <?php echo $row['home1']?></td>
<td><?php echo $row['away1']?><input type="radio" id="away1" name="game1" value="<?php'.$row['away1'].'?>"></td>
</tr>
<?php }?>
</table>
Point Difference: <input type="text" id="g1diff" name="g1diff" size=5 />
<table border="1">
<tr><b><h4>Game 2</h4></b>
<th>Home</th><th>Away</th>
</tr>
<?php
mysql_data_seek($rs, 0);
while ($row = mysql_fetch_array($rs)){?>
<tr>
<td><input type="radio" id="home2" name="game2"value="<?php'.$row['home2'].'?>"><?php echo $row['home2']?></td>
<td><?php echo $row['away2']?><input type="radio" name="game2" value="<?php'.$row['away2'].'?>"></td>
</tr>
Point Difference: <input type="text" id="g2diff" name="g2diff" size=5 />
<?php }?>
</table>
由于home1和home2之间的唯一区别是最后一位数,所以无论如何都要动态地为所有&#39; home&#39;选择所有&#39;远离&#39;进行选择。
答案 0 :(得分:1)
听起来您的数据库设计没有规范化(多列如此)。
但是,如果我了解您的要求,那么您希望为每行输出9个HTML表格。可能最容易设置一个数组来存储9个表,然后循环遍历行,并为每一行获取相关列并更新要输出的表数组。处理完所有数据后,您就可以输出它们了。
这样的事情: -
<?php
$games = array();
for($aCnt = 1; $aCnt <= 9; $aCnt++)
{
$games[$aCnt] = "<table border='1'><tr><b><h4>Game ".$aCnt."</h4></b><th>Home</th><th>Away</th></tr>";
}
while ($row = mysql_fetch_array($rs))
{
for($aCnt = 1; $aCnt <= 9; $aCnt++)
{
$games[$aCnt] .= " <tr>
<td><input type='radio' id='home".$aCnt."' name='game".$aCnt."' onchange='tip();' value='".$row['home'.$aCnt]."' > ".$row['home'.$aCnt]."</td>
<td>".$row['away'.$aCnt]."<input type='radio' id='away".$aCnt."' name='game".$aCnt."' value='".$row['away'.$aCnt]."'></td>
</tr>";
}
}
for($aCnt = 1; $aCnt <= 9; $aCnt++)
{
$games[$aCnt] .= "</table> Point Difference: <input type='text' id='g1diff' name='g".$aCnt."diff' size=5 />";
echo $games[$aCnt];
}
?>