PHP While循环仅适用于三个结果中的前两个?

时间:2014-09-03 00:48:39

标签: php html mysql sql

我知道我是初学者,但我有一个我无法弄清楚的问题。我到处搜寻。请不要吝啬:)我正在努力学习!:)

所以我有一个while循环,它为我创建一个HTML表,并且每次都有三个[]回声中的两个回合,但第三个回调只是表中最后一个条目的ID。

我的代码:

<?php 
$searchsql = "SELECT * FROM `students` WHERE `fname` LIKE '%" . $searchvalue1 . "%' LIMIT 0, 10 ";
$search1result = mysql_query($searchsql);
while($search1row=mysql_fetch_array($search1result)){?>
<h3>
    <table align="center">
    <thead>
        <tr>
            <td>First Name</td>
            <td>Last Name</td>
            <td>Select</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><?php echo $search1row['fname'];?></td>
            <td><?php echo $search1row['lname'];?></td>
            <td>
            <form method="post" action="4.php"> 
                <input type="hidden" id="voteid" name="voteid" class="inputbutton" value="<?php echo $search1row['studentid'];?>">
                <input type="submit" class="inputbutton" value="SELECT">
            </td>
        </tr>
    </tbody>
    </table>
</h3>
<?php }?>

所以如果返回的表是(见图)

该表单中的选择按钮始终从最后一行发布studentid ...每个选择按钮都会发布Jane的ID号。所以约翰,杰森,简和他们的姓氏都得到了正确的回应,但他们相应的身份证号码却不是......如果这是有道理的。

由于我的网站工作方式(不是带有get变量的链接),我必须保留一个表单。

有关如何让ID在该表单内部回显的任何想法?

1 个答案:

答案 0 :(得分:2)

您不会在每个循环结束时关闭表单。因此,每次voteid输入被覆盖时,这就是为什么它总是发布最后一行的id。

添加结束表单标记:

...
<form method="post" action="4.php"> 
    <input type="hidden" id="voteid" name="voteid" class="inputbutton" value="<?php echo $search1row['studentid'];?>">
    <input type="submit" class="inputbutton" value="SELECT">
</form>
...