Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 1
Регистрация: 16.12.2013
Сообщений: 82

Принцип кода при ступенчатой работе кода

04.02.2014, 21:29. Показов 1483. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В очередной раз прошу помощи.

Есть три ступеньки. У каждой ступеньки свой набор инфы.
Пример:

Первая ступень. Выбираем из списка человека.

Вторая ступенька. Выбираем из списка вещи которые у него есть, то есть рубашка, джинсы, ботинки и т.п.

Ступенька третья. При выборе рубашки можем выбрать из различных цветов, красная , синяя, зеленая.

На данном этапе интересно знать как это привязать друг к другу. И пока через INSERT к первой ступеньке(человеку) добавлять ступеньку два(одежду). В дальнейшем естественно вывод всех этих данных в список.

Очень надеюсь на помощь, и в надежде и с красными глазами продолжаю искать ответ в интернете.

Всем мир
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.02.2014, 21:29
Ответы с готовыми решениями:

Принцип работы кода
Я только начал учить пхп и делаю это по Энди Харрису дак вот там есть пример.Надо создать пхп файл с хтмл и пхп кодом внутри вот код; ...

Оптимизация кода при работе с векторами
Сразу пример Class A { vector <float> a1; public: vector<float> function(vector<float> incomming) { a1 =...

Не все ветви кода возвращают значение при работе с БД
Помогите пожалуйста новичку!!!! Никак не пойму в чем проблема. Ошибка: Не все ветви кода возвращают значение. ASP .NET C# ...

2
 Аватар для c_k_rim
71 / 38 / 23
Регистрация: 05.12.2013
Сообщений: 118
05.02.2014, 05:28
Лучший ответ Сообщение было отмечено borik_newb как решение

Решение

Вот пример-прикол, может как-то поможет, читай комменты

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
<?
/**
 * http://ru2.php.net/manual/ru/function.error-reporting.php
 * http://ru2.php.net/manual/ru/function.ini-set.php
 * http://ru2.php.net/manual/ru/book.session.php
 */
error_reporting(E_ALL); //Включаем отображение
ini_set('display_errors', 1); //различных ошибок
session_start(); //Стартуем сессию
 
/**
 * Наш первый класс на php =D
 *
 * @author c_k_rim специально для borik_newb ;)
 */
class myFirstClass {
 
    /**
     * Конструктор класса. Вызывается при создании
     * объекта нашего класса
     * http://www.php.net/manual/ru/language.oop5.decon.php
     * http://ru2.php.net/manual/ru/control-structures.if.php
     * 
     * @var string $step нынешний шаг
     */
    public function __construct($step = 'first') {
 
        /**
         * В нашем конструкторе мы определимся, какой шаг будем выполнять,
         * Ну, типа "роутера", так, ради шутки ;)
         */
 
        if($step) {
            /**
             * Если существует метод в нашем классе, типа "step",
             * например FirstStep или SecondStep, то вызываем этот метод
             * http://ru2.php.net/manual/ru/function.ucfirst.php
             * http://ru2.php.net/manual/ru/function.method-exists.php
             * http://ru2.php.net/manual/ru/function.call-user-func.php
             * http://ru2.php.net/manual/ru/class.exception.php
             */
 
            $stepMethod = ucfirst($step).'Step'; //Собираем имя
 
            if(method_exists($this, $stepMethod)) { //Проверяем, есть ли метод
                call_user_func(array($this, $stepMethod)); //Вызываем
 
            } else { //Иначе, созданим исключение =(
 
                throw new Exception('Метод '.$stepMethod.' не найден =`(');
            }
        } else {
            throw new Exception('Это какой-то не правильный шаг =\\');
        }
 
        //Закончили работу по вызову шага, остальное волшебство будет делаться в нём (в конкретном методе шага)
    }
 
 
    /**
     * Первый шаг
     * Отображаем выбор человека
     * 
     * http://htmlbook.ru/html/input
     * http://htmlbook.ru/html/form
     * http://htmlbook.ru/html/label
     * 
     * http://ru2.php.net/manual/ru/function.echo.php
     */
    protected function FirstStep() {
        $html ='<form action="" method="POST">
                Выберете из списка человека:<br/>
                <label for="man1"><input type="radio" value="Вася" name="man" id="man1"/>Вася</label><br/>
                <label for="man2"><input type="radio" value="Тамара" name="man"  id="man2"/>Тамара</label><br/>
                <input type="hidden" name="step" value="FirstSave" />
                <input type="submit" value="Выбрать" />
            </form>';
 
        echo $html; //Показываем форму выбора
    }
 
    /**
     * Метод сохранения данных после первого шага.
     * И тут же покажем второй шаг
     * http://ru2.php.net/manual/ru/function.isset.php
     */
    protected function FirstSaveStep() {
 
        if(isset($_REQUEST['man'])) { //Смотрим переданную переменную
            $_SESSION['man'] = $_REQUEST['man']; //Запоминаем её в сессию
 
            $this->SecondStep(); //Вызываем следующий шаг
 
        } else { //Если каким-то макаром переменная не найдена о_О
            throw new Exception('Шта? А где выбранный человек? о_О');
        }
    }
 
    /**
     * Второй шаг
     * Отображаем форму выбора вещей
     */
    protected function SecondStep() {
        $html ='<form action="" method="POST">
                Выберете из списка вещи человека:<br/>
                <label for="clothes1"><input type="checkbox" value="Ботинки" name="clothes[]" id="clothes1"/>Ботинки</label><br/>
                <label for="clothes2"><input type="checkbox" value="Рубашка" name="clothes[]"  id="clothes2"/>Рубашка</label><br/>
                <label for="clothes3"><input type="checkbox" value="Джинсы" name="clothes[]"  id="clothes3"/>Джинсы</label><br/>
                <input type="hidden" name="step" value="SecondSave" />
                <input type="submit" value="Выбрать" />
            </form>';
 
        echo $html; //Показываем форму выбора
    }
 
    /**
     * Метод (шаг) сохранения данных после второго шага.
     * И если выбрана была рубашка - покажем третий шаг.
     * Иначе - показываем конечный результат.
     * http://ru2.php.net/manual/ru/function.in-array.php
     * http://ru2.php.net/manual/ru/function.return.php
     */
    protected function SecondSaveStep() {
        
        if(isset($_REQUEST['clothes'])) { //Если вообще выбрали одежду
            
            $_SESSION['clothes'] = $_REQUEST['clothes']; //Сохраняем выбор в сессию
 
            if(in_array('Рубашка', $_SESSION['clothes'])) { //А если выбрана была и рубашка
                return $this->ThirdStep(); //Переходим к третьему шагу
            }
        }
 
        $this->FinishStep(); //Иначе - показываем результат.
    }
 
    /**
     * Третий шаг
     * Отображаем форму выбора цвета для рубашки.
     */
    protected function ThirdStep() {
        $html ='<form action="" method="POST">
                Выберете цвет рубахи:<br/>
                <label for="color1"><input type="radio" value="Красная" name="color" id="color1"/>Красная</label><br/>
                <label for="color2"><input type="radio" value="Синяя" name="color"  id="color2"/>Синяя</label><br/>
                <input type="hidden" name="step" value="ThirdSave" />
                <input type="submit" value="Выбрать" />
            </form>';
 
        echo $html; //Показываем форму выбора
    }
 
    /**
     * Метод (шаг) сохранения данных после третьего шага.
     *
     */
    protected function ThirdSaveStep() {
 
        if(isset($_REQUEST['color'])) { //Если был выбран цвет для рубашки
            $_SESSION['color'] = $_REQUEST['color']; //Сохраняем выбор в сессию
 
            $this->FinishStep(); //Выводим результат
 
        } else { //Иначе создаем исключение об ошибке
            throw new Exception('Ошибка при выборе цвета рубашки Х_Х');
        }
    }
 
    /**
     * Конечный шаг.
     * Отображаем выбранные данные
     * http://ru2.php.net/manual/ru/control-structures.foreach.php
     */
    
    protected function FinishStep() {
        $html = 'Закончили!<br/>Мы выбрали:<br/><br/>';
        $html.= 'Человека : '.$_SESSION['man'].'<br/>';
 
        if(isset($_SESSION['clothes'])) { //Если была выбрана и одежда тоже
            
            $html.= '<br/>А так же одёжку ему:<br/>';
            
            foreach ($_SESSION['clothes'] as &$clothes) { //"Проходим" по ней
                
                /**
                 * "Собираем" html - Если выбрана рубаха - выводим сообщение и цвет.
                 * Иначе - просто выводим выбранную одёжку
                 */
                $html.= ($clothes == 'Рубашка' ? 'Рубашку цвета - '.$_SESSION['color'] : $clothes).'<br/>';
            }
        }
 
        echo $html; //Показываем, что получилось
    }
 
}
 
/**
 * Ниже просто выводим "каркас" для нашей странички
 * http://htmlbook.ru/html/!doctype
 * http://htmlbook.ru/html/html
 * http://htmlbook.ru/html/head
 * http://htmlbook.ru/html/title
 * http://htmlbook.ru/html/meta
 * http://htmlbook.ru/html/body
 */
?>
 
<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <?
        $step = isset($_REQUEST['step']) ? $_REQUEST['step'] : 'First';
        new myFirstClass($step);
        ?>
    </body>
</html>
2
0 / 0 / 1
Регистрация: 16.12.2013
Сообщений: 82
05.02.2014, 12:23  [ТС]
Это просто афигительно! Спасибо огромнейшее человечище!!!

Добавлено через 2 часа 39 минут
Перечитал. Понял суть. Но эта суть не та, которая мне требуется. Там будет не выбор из списка.
Там будут подгружаться данные из таблиц данных.

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

При переключении продавцов, к каждому продавцу будет свой список заказов, в которых будут свои списки товаров.

Вот примерно так.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.02.2014, 12:23
Помогаю со студенческими работами здесь

Вопрос по безопасности кода в многопоточном приложении при работе с сетью
Есть следующий код: DefaultHttpClient httpClient = new DefaultHttpClient(httpParams); ...

Не все ветви кода возвращают значение при работе с процессами
вылезает ошибка и ругается на функцию CheckOpenExcel мол &quot;не все ветви кода возвращают значение&quot;, помогите пожалуйста using...

Напишите фрагмент кода для определения кода нажатой клавиши (расширенного кода в том числе)
Напишите фрагмент кода для определения кода нажатой клавиши (расширенного кода в том числе). Найдите коды клавиш Esc, Enter, BackSpace,...

Нужно ли определение блока кода при одной строке кода?
Вопрос исключительно блока с одной строкой кода. Объясните пожалуйста, каким образом стоит писать... Если можно, аргументируйте. ...

PrestaShop Как реализовать замещение кода при активности другого кода?
В cms подгружается стандартный шаблон страницы в формате .tpl, но код этой страницы должен исчезнуть при появлении в коде активности...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru