отображать данные по одной странице и сразу, используя php - PullRequest
1 голос
/ 31 октября 2010

У меня есть две таблицы базы данных mysql:

1) ТАБЛИЦА АВТОМОБИЛЕЙ: со следующими столбцами i) название автомобиля и ii) название производителя.

2) ТАБЛИЦА ЗАПИСЕЙ: со следующими столбцами i) имя пользователя ii) присвоенный рейтинг iii) имя автомобиля.

Теперь я хочу, чтобы каждый пользователь давал оценку (рейтинг будет текстовым полем ввода) для каждого автомобиля двумя способами.

1) ONE BY ONE: пользователь вводит рейтинг для первой машины со стола машин.Он нажимает «Далее» и переходит на другую страницу, где он может ввести оценку для второго автомобиля из таблицы автомобилей, в то время как первый рейтинг сохраняется в базе данных.Я не могу понять, как показать страницу рейтинга по одному.Использование $ _SESSION?

2) ВСЕ ОДИН РАЗ: если я хочу, чтобы пользователь вводил оценки для всех автомобилей одновременно, то как мне определить каждую оценку на странице обработки, когда пользователь входит врейтинг и клики отправить?

заранее спасибо.

1 Ответ

0 голосов
/ 31 октября 2010

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'], и делать с ним все, что вы хотите.1007 * 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
    }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...