PHP, MySql. Скрипт для добавления в базу данных.

umgala

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

В целом скрипт следующий:

1. Посетитель сайта выбирает ссылку с названием " Узнать цену на окна ".
2. Открывается страница, с нарисованными картинками окон (8 картинок) каждая картинка в виде ссылки. (Страница уже сделана).
3. Посетитель сайта выбирает картинку окна, после этого открывается страница с формами (страница с формами уже сделана):
а. Высота окна.
б. Ширина створки А.
в. Радиобуттон: Рядом с каждой радиобуттон мини иконка как открывается створка А.
г. Ширина створки Б.
д. Радиобуттон: Как открывается створка Б.
4. Отправить. Данные сохраняются во временной переменной или как удобнее на Ваш взгляд.
5. Появляется страница: Посетитель видет выбранное окно, ссылка "Добавить еще окно." И кнопка "Продолжить"
6. Если продолжить: Форма, с именем, фамилией, установка да \ нет, отделка да \ нет, вывоз мусора да \ нет, подоконник, слив....

7. Отправить. Все данные отправляются в базу данных или на э-почту. Идеально, если в базу данных уйдут все данные, а на почту придет письмо. "В базу данных добавлен новый ценовой запрос."

Делал так:

Методом GET передавал из списка с окнами, в файл calc.php тип окна "?type=1".
В файле calc.php первая форма с высотой, типом створок и шириной окна.
От туда данные уходили в базу данных. Таблица temp. Там сделал ячейки как и в форме. $id, $type (тип окна), $width_window (высота окна), $width_a (ширина створки А), $width_b (ширина створки Б), $row_a (створка А. - тип открывания, от 1...6) , $row_b (створка Б. - тип открывания, от 1...6).

Остановился на том, как после того как данные уже в таблице temp, сделать так чтобы можно было добавить еще одно другое окно, а это сохранилось.

Надеюсь, мысль выразил внятно :)

Жду ответов.
 

umgala

Новичок
Молодец 5.
Лучше скажи как сделать чтобы заработало. :)
 

craz

Нестандартное звание
Молодец 5.
Лучше скажи как сделать чтобы заработало. :)
чтобы заработал алгоритм его описывают с помощью кода, на одном из распространенных языков программирования, насколько понимаю, если вы пришли на PHPclub.ru, то вы хотите описать с помощью скриптового языка PHP - дерзайте.
 

Linker

Новичок
umgala
Чтобы заработало, необходимо учитывать суммарную ширину створок А и Б - она не должна превышать общую ширину окна. В противном случае створки будут цепляться друг за друга в скрипте.
 
  • Like
Реакции: craz

craz

Нестандартное звание
umgala
Чтобы заработало, необходимо учитывать суммарную ширину створок А и Б - она не должна превышать общую ширину окна. В противном случае сторки будут цепляться друг за друга в скрипте.
отжиг)
 

umgala

Новичок
чтобы заработал алгоритм его описывают с помощью кода, на одном из распространенных языков программирования, насколько понимаю, если вы пришли на PHPclub.ru, то вы хотите описать с помощью скриптового языка PHP - дерзайте.
Да ну?
umgala
Чтобы заработало, необходимо учитывать суммарную ширину створок А и Б - она не должна превышать общую ширину окна. В противном случае сторки будут цепляться друг за друга в скрипте.
Ага, но перед этим написать функцию по вычислению поперечного сечения подоконника и задать цикл расчета передачи сплава переменного слива.
А вообще давай без оффтопа.
 

craz

Нестандартное звание
Да ну?

Ага, но перед этим написать функцию по вычислению поперечного сечения подоконника и задать цикл расчета передачи сплава переменного слива.
А вообще давай без оффтопа.
оффтопишь ты, никто не будет здесь писать код по алгоритму, максимум могут подсказать ошибки по готовому коду.
 

Linker

Новичок
Если без оффтопа, то можно рассмотреть вариант хранения данных пользователя в сессии, а после того, как он определился окончательно, т.е. нажал кнопку "оформить заказ" или типа того, писать уже всё в базу...
А форточки будут в окнах?
 

craz

Нестандартное звание

umgala

Новичок
index.php
PHP:
<a href="calc.php?type=1"> 1 type of window </a>
calc.php
PHP:
<form method='post' class="testform" action='okna/insert_data.php'>

<h2> Створка 1: </h2>
<h5>Примерный стандартный размер данного окна (подходит для панельных домов: Мустамяэ, Ыесмяэ, Ласнамяэ): 1530 х 780</h3>
<input type="hidden"  name='type' value="<?php echo ($_GET["type"]); ?>"/>

<p>
<label for='user'>Высота:</label>

<input class='text' type='text' name='t1_w' id='user'/>
</p>
<p>
<label for='user'>Ширина створки 1:</label>
<input class='text' type='text'  name='t1_s1_h' /><br />
</p>

<p>
<label for="subscribe">Тип створки:</label>
<input type=radio name='flap' value='1'><img src="stvorka1.jpg" />
<input type=radio name='flap' value='2'><img src="stvorka2.jpg" />
<input type=radio name='flap' value='3'><img src="stvorka3.jpg" />
<input type=radio name='flap' value='4'><img src="stvorka4.jpg" />
<input type=radio name='flap' value='5'><img src="stvorka5.jpg" />
<input type=radio name='flap' value='6'><img src="stvorka6.jpg" />
<input type=radio name='flap' value='7'><img src="stvorka7.jpg" />
</p>
</label>
<h2> Створка 2: </h2>
<input type="hidden" name='type' value="<?php echo ($_GET["type"]); ?>"/>

<p>
<label for='user'>Ширина створки 2:</label>
<input class='text' type='text'  name='t1_s2_h' /><br />
</p>


<p>
<label for="subscribe">Тип створки:</label>
<input type=radio name='flap2' value='1'><img src="stvorka1.jpg" />
<input type=radio name='flap2' value='2'><img src="stvorka2.jpg" />
<input type=radio name='flap2' value='3'><img src="stvorka3.jpg" />
<input type=radio name='flap2' value='4'><img src="stvorka4.jpg" />
<input type=radio name='flap2' value='5'><img src="stvorka5.jpg" />
<input type=radio name='flap2' value='6'><img src="stvorka6.jpg" />
<input type=radio name='flap2' value='7'><img src="stvorka7.jpg" />
</p>
<div class=submit>
<input type='submit' value='Узнай цену' />
</div>

insert_data.php
PHP:
<?php
include ('base.php');
$t1_w = $_POST['t1_w'];
$t1_s1_h = $_POST['t1_s1_h'];
$t1_s2_h = $_POST['t1_s2_h'];
$flap = $_POST['flap'];
$flap2 = $_POST['flap2'];
$type = $_POST['type'];

$sql = 'INSERT INTO temp(t1_w, t1_s1_h, t1_s2_h, flap, flap2, type) 
VALUES("'.$t1_w.'", "'.$t1_s1_h.'", "'.$t1_s2_h.'", "'.$flap.'", "'.$flap2.'" , "'.$type.'")';

if(!mysql_query($sql))
{echo '<center><p><b>Date insert error!!</b></p></center>';} 
else 
{echo '<center><p><b>Date update!</b></p></center>';}
?>

<?php include ('get_data.php'); ?>

<a href="index.php">Add window</a>
 

umgala

Новичок
get_data.php
PHP:
<?php
include ('base.php')
$sql="SELECT * FROM temp WHERE id='1'";
$res=mysql_query($sql); 
echo 'Вы выбрали окно: '; 
while ($info=mysql_fetch_array($res))
{
echo  '' .$info["id"].''; 
echo '<br /> <br /> 
Ширина: '.$info["t1_s1_h"].' <br /> 
Высота: '.$info["t1_w"].' <br /> 
';
}
?>
 

craz

Нестандартное звание
так ну добавил я окно появилось еще одна страница add window, так понимаю надо для этого же человека добавить еще окно а этого у вас в базе нет
$id, $type, $width_window , $width_a, $width_b, $row_a, $row_b.
Можно сделать как можно в calc.php выставлять хеш какой нить в сессию или куку, выставили, записали в базу, таблицу кстати еще поле надо uhash, когда адд виндов делаете кидаете его не на индекс, а на калк, там проверяете установлена ли кука или сессия и снова с этим хешом передаете следующее окно, так для одного юзера можно по хешу все окна вытащить, будет в get_data.php
 

Linker

Новичок
umgala
Обязательно поищите и почитайте материалы этого форума на тему "обработка данных пользователя из форм" поверьте, это очень полезно, не пожалейте на это времени.
Насчёт работы с базой, по моему скромному мнению, необходимо начать с планирования её структуры, вот для примера, что можно сделать:
- завести таблицу для сохранения заказов, в ней будут храниться данные относящиеся к заказу вцелом, т.е. например, дата заказа, данные заказчика, тип заказа, статус заказа и т.д. и т.п.
- завести таблицу для сохранения позиций заказа, в ней будут хранится данные, относящиеся к отдельной позиции заказа, в вашем случае параметры окна, размеры, число форточек и т.д. связана эта таблица будет с первой, каким-нибудь идентификатором, как правило, для этого используют внешний ключ.
Для добавления/удаления или изменения заказа, нужно будет добавить/удалить или изменить позицию во второй таблице.
 
Сверху