Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: циклическая паредача значений из массива
 
 автор: eag1e   (02.12.2006 в 19:09)
 
 

Нужна помощь ...
Есть скрипт который генерирует массив из 8 случайных чисел от 1 до 8:

include "config.php";
$show = 8;
$numbers = range(1, 8);
srand((float)microtime() * 1000000);
shuffle($numbers);

На основе этих чисел будут выводиться вопросы из БД (то есть Число = id вопроса).
Ну то есть логика такая:
Форма (в ней вопрос и варианты ответов) -> обработали -> эта же форма но уже со следующим id из массива -> обработали -> ....
Как это организовать (форма-обработка-форма-....)? ... если не физически то хотя бы абстрактно опишите пожалуйста ...
ЗЫ. голова вобще не варит чего-то .... надеюсь понятно изложил ...

   
 
 автор: Fli   (02.12.2006 в 19:50)   письмо автору
 
   для: eag1e   (02.12.2006 в 19:09)
 

Можно использовать сессии.

   
 
 автор: AlexelA   (02.12.2006 в 19:54)   письмо автору
 
   для: eag1e   (02.12.2006 в 19:09)
 

если не физически то хотя бы абстрактно опишите

Попробуйте описать обработчик формы так:
<form action="<?php echo $_SERVER['SCRIPT_NAME']?>">
В самом скрипте напишите так:
Если нажата некая кнопка (submit), то код обработчика +
header("Location: $_SERVER['SCRIPT_NAME']");
иначе - отобразить форму

   
 
 автор: eag1e   (02.12.2006 в 20:27)
 
   для: AlexelA   (02.12.2006 в 19:54)
 

Спасибо ... но это как бы немного не то (так и знал что вопрос не правильно изложил) ...
Основная проблема в передаче форме следующего элемента массива (который будет id вопроса извлекаемого из БД в форму)...

   
 
 автор: Fli   (02.12.2006 в 20:30)   письмо автору
 
   для: eag1e   (02.12.2006 в 20:27)
 

А Обязательно случайный id?

   
 
 автор: eag1e   (02.12.2006 в 20:37)
 
   для: Fli   (02.12.2006 в 20:30)
 

обязательно ...
Но черт с ним - с id ... в массиве то всё по порядку идёт ... то есть:
0->6, 1->3, 2->5, 3->1
Вся задача в том чтобы в первую форму вывести информацию на основе 0 элемента массива ... после нажатия кнопки и проверки результата в эту же форму вывести информацию на основе 1 элемента ... и т д ....
Как мне сохранить массив чтобы он не генерился заново и как дальше передавать по очереди элементы массива в форму ?

   
 
 автор: AlexelA   (02.12.2006 в 20:49)   письмо автору
 
   для: eag1e   (02.12.2006 в 20:27)
 

А каким образом вы передаете элементы массива?
Все зависит от метода передачи данных скрипту.
Хотя оптимальным будет использование сессии.
В любом случае вам необходимо передавать сам массив
и текущий индекс массива.

   
 
 автор: eag1e   (02.12.2006 в 21:17)
 
   для: AlexelA   (02.12.2006 в 20:49)
 

Вот по вашим советам сделал вот так:

файл doRand.php

include "config.php";
$show = 8;
$numbers = range(1, 8);
srand((float)microtime() * 1000000);
shuffle($numbers);
session_start();
$_SESSION['numbers'] = $numbers;
$_SESSION['count'] = 0;


файл form.php

if ($_POST['enter']) {
  session_start();
  if ($_SESSION['count'] <= count($_SESSION['numbers'])) {
    echo $count = $_SESSION['count']++;
  }
  else {
    header ("Location: result.php");
  }
}
<form action="" method="post">
<input type="submit" name="enter" />
</form>


Посмотрите, может что переделать можно лучше ... но вроде бы работает ...

   
 
 автор: AlexelA   (02.12.2006 в 21:32)   письмо автору
 
   для: eag1e   (02.12.2006 в 21:17)
 

Ну если работает, то зачем переделывать.
Единственное, необходимо сессии запускать в самом
начале скрипта, иначе возможны проблемы.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования