我想创建一个一次检查2个表的php语句

时间:2014-05-30 10:46:22

标签: php mysql sql

我有几个表显示来自同一个表的数据但不是一个表中的所有数据,它们根据列名进行拆分。我还有单选按钮,供用户查看他们想要支持的团队。

我需要做的是,根据用户的选择,我想将该信息作为整数传递到数据库中。因此,如果用户选择家庭'并且点差为' 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;进行选择。

1 个答案:

答案 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];
}

?>