使用php一个接一个地显示数据

时间:2010-10-31 14:30:25

标签: php mysql session

我有两个mysql数据库表:

1)CARS TABLE:包含以下列 i)汽车的名字 和 ii)制造商的名称。

2)RECORDS TABLE:包含以下列 i)用户的名字 ii)给出的评级 iii)汽车的名字。

现在我希望每个用户以两种方式为每辆车提供评级(评级将是文本输入框)。

1)ONE BY ONE:用户从汽车表中输入第一辆汽车的评级。他点击下一步然后转到另一个页面,在那里他可以从汽车表中输入第二辆汽车的评级,同时将第一个评级保存到数据库中。我无法弄清楚如何逐一显示评级页面。使用$ _SESSION?

2)ALL AT ONCE:如果我希望用户立即输入所有车辆的给定评级,那么一旦用户输入评级并点击提交,我如何识别处理页面上的每个评级?

提前感谢。

1 个答案:

答案 0 :(得分:0)

1)是的,你可以使用会话。您可以将每个评级存储在一个数组中。在输出任何内容之前,请务必在页面的第一行调用session_start()。 对于每个页面,您可以执行以下操作:

//start using sessions
session_start();
//if the session variable is empty, create a new array
$votesArray = empty($_SESSION['votesArray']) ? array() : $_SESSION['votesArray'];
//push the submitted vote value
array_push($votesArray, $_POST['voteValue']);
//store the vote array in the session
$_SESSION['votesArray'] = $votesArray;

然后在最后一页上,您可以使用$_SESSION['votesArray']获取整个投票数组,并使用它做您想做的事。

2)这有点复杂。就个人而言,当我遇到这样的情况时,我会使用索引来构建我的表单。例如:

<form method="post" action="">
    <?php
        //for each car, generate the form
        for($index=0;$index<$numberOfCars;$index++) {
    ?>
    <input name="vote<?php echo $index;?>" type="hidden" value="5">
    <?php
        }
    ?>
    <input type="submit">
    <!-- stores the number of votes that will be submitted -->
    <input name="numberOfVotes" type="hidden" value="<?php echo $numberOfCars; ?>">
</form>

这将输出每辆车的隐藏输入,其中包含投票值。提交表单后,您将使用此逻辑进行每次投票:

<?php
    for($i=0;$i<$_POST['numberOfVotes'];$i++) {
        $vote = $_POST['vote'.$i]; //this is the i'th car's vote
    }
?>