【问题标题】:display data one by one page and at once using php使用php一次一页显示数据
【发布时间】:2010-10-31 14:30:25
【问题描述】:

我有两个mysql数据库表:

1) 汽车表:带有以下列 i) 车名 和 ii) 制造商的名称。

2) 记录表:包含以下列 i) 用户名 ii) 给定评级 iii) 车名。

现在我希望每个用户以两种方式给每辆车评分(评分将是一个文本输入框)。

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

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

提前致谢。

【问题讨论】:

    标签: php mysql session


    【解决方案1】:

    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
        }
    ?>
    

    【讨论】:

    • 还有一个问题。如何在每一页上一一显示对应的车名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2019-04-13
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    相关资源
    最近更新 更多