Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 2
Регистрация: 07.11.2013
Сообщений: 165

Как лучше реализовать большую таблицу? Массивом или по другому?

19.08.2014, 16:28. Показов 5869. Ответов 116
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите как правильно сделать вот такую таблицу? передавать 60 переменных в обработчик или как то можно массивом, если можно на моем примере с массив показать?! или как то загружать всю таблицу в БД

делал примитивно но думаю это банально (?) много кода

PHP/HTML
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
<table style="font-size:11px" border="1px" bordercolor="#FFFFFF">
 
<tr><!--HEAD-->
 
<td class="head_tb">размер</td>
<td class="head_tb"><img src="../admin/imge/color_bl.png"/></td>
<td class="head_tb"><img src="../admin/imge/color_blk.png"/></td>
<td class="head_tb"><img src="../admin/imge/color_g.png"/></td>
<td class="head_tb"><img src="../admin/imge/color_gr.png"/></td>
<td class="head_tb"><img src="../admin/imge/color_w.png"/></td>
<td class="head_tb"><img src="../admin/imge/color_y.png"/></td>
<td class="head_tb"><img src="../admin/imge/color_pn.png"/></td>
<td class="head_tb"><img src="../admin/imge/color_r.png"/></td>
<td class="head_tb"><img src="../admin/imge/color_fl.png"/></td>
<td class="head_tb"><img src="../admin/imge/color_be.png"/></td>
 
</tr><!--!HEAD-->
 
<form action="action.php" method="post">
 
<tr>
 
<td class="size_tb">XS</td>
<td class="size_tb"><input name="xs_blu" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xs_bl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xs_g" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xs_gr" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xs_w" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xs_y" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xs_p" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xs_r" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xs_fl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xs_bg" class="input" type="text" value="0"></td>
 
</tr>
 
<tr><!--HEAD-->
 
<td class="size_tb">S</td>
<td class="size_tb"><input name="s_blu" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="s_bl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="s_g" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="s_gr" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="s_w" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="s_y" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="s_p" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="s_r" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="s_fl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="s_bg" class="input" type="text" value="0"></td>
 
</tr><!--!HEAD-->
 
<tr><!--HEAD-->
 
<td class="size_tb">M</td>
<td class="size_tb"><input name="m_blu" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="m_bl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="m_g" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="m_gr" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="m_w" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="m_y" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="m_p" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="m_r" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="m_fl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="m_bg" class="input" type="text" value="0"></td>
 
</tr><!--!HEAD-->
 
<tr><!--HEAD-->
 
<td class="size_tb">L</td>
<td class="size_tb"><input name="l_blu" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="l_bl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="l_g" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="l_gr" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="l_w" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="l_y" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="l_p" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="l_r" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="l_fl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="l_bg" class="input" type="text" value="0"></td>
 
 
</tr><!--!HEAD-->
 
<tr><!--HEAD-->
 
<td class="size_tb">XL</td>
<td class="size_tb"><input name="xl_blu" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xl_bl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xl_g" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xl_gr" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xl_w" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xl_y" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xl_p" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xl_r" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xl_fl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xl_bg" class="input" type="text" value="0"></td>
 
 
</tr><!--!HEAD-->
 
<tr><!--HEAD-->
 
<td class="size_tb">XXL</td>
<td class="size_tb"><input name="xxl_blu" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xxl_bl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xxl_g" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xxl_gr" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xxl_w" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xxl_y" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xxl_p" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xxl_r" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xxl_fl" class="input" type="text" value="0"></td>
<td class="size_tb"><input name="xxl_bg" class="input" type="text" value="0"></td>
 
 
</tr><!--!HEAD-->
<tr>
 
<td><input name="submit" type="submit" value="OK"></input></td>
</tr>
</form>
 
</table>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.08.2014, 16:28
Ответы с готовыми решениями:

Как передать таблицу массивом в js или jQuery?
Добрый день, не подскажете как можно передать содержимое таблиц массивом в javascript или jquery, например у меня есть таблица, и текст в...

Как лучше вывести большую таблицу со множеством группировок?
Добрый день. Много перерыл информации, но так и не нашел каким способом лучше всего выводить большую таблицу. Задача - Есть 4 таблицы...

Как вывести одно значение из массива list? Лучше использовать итератор или как-то по другому?
Здравствуйте! Что бы вывести одно значения из массива list нужно использовать итератор или можно как то по другому?

116
0 / 0 / 2
Регистрация: 07.11.2013
Сообщений: 165
09.09.2014, 10:02  [ТС]
Студворк — интернет-сервис помощи студентам
MAV здравствуйте, не посмотрите что то сломалось)))) бл, все вроде было норм.Ошибок не выводит доходит только до print_r

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
<?php
session_start();
include_once'bd.php';
 
print_r($_POST);
 
if(isset($_POST["action"]) && $_POST["action"] == "basket_order" && !empty($_POST["id_basket"]))
{
    $id_basket = array();
 
    foreach($_POST["id_basket"] as $id)
    {
        $id_basket[] = mysql_real_escape_string($id);
    }
 
    $res = mysql_query("SELECT * FROM basket WHERE id_cus ='".$login."' AND id_basket IN ('".implode("','", $id_basket)."')");
 
    if(mysql_num_rows($res) > 0)
    {
        $data = array();
        $ids = array();
        echo $ts = time();
        echo $order_id = md5($login.date("dmYHis"));
 
        while($row = mysql_fetch_array($res, MYSQL_ASSOC))
        {
            $data[] = "('".$login."', '".$order_id."', '".$row["id_mod"]."', '".$row["xs"]."', '".$row["s"]."', '".$row["m"]."', '".$row["l"]."', '".$row["xl"]."', '".$row["xxl"]."', '".$ts."', '".$row["code"]."', '".$row["name_mod"]."')";
    
            $ids[] = $row["id_basket"];
        }
 
        if(!empty($data))
        {
            echo $query = "INSERT INTO orders (login, order_id, id_mod, xs, s, m, l, xl, xxl, ts, code, name_mod) VALUES ".implode(",", $data);
 
            echo $query;
 
            mysql_query($query);
 
            mysql_query("DELETE FROM basket WHERE id_basket IN ('".implode("','", $ids)."') AND id_cus ='".$login."'");
        }
    }
}
 
 ?>
количество в запросе вроде ровное!
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
09.09.2014, 10:24
Цитата Сообщение от cinema4d Посмотреть сообщение
делал примитивно но думаю это банально (?) много кода
Массив размер скрипта не очень сократит, так как его элементы надо присвоить. Полноценная БД - совсем другое дело, там всю таблицу можно хранить в виде данных, а скрипт будет отвечать за экранное оформление. Данные всё равно надо будет вводить в полном объёме, но зато получишь полную независимость контента от представления и может быть даже можно будет свалить ввод данных на распознавалки, или на других людей. Например, реализовать заполнение таблицы данными, присылаемыми посетителями сайта. А в скрипт лезть - это каждый раз программирование.
0
 Аватар для mav
228 / 206 / 120
Регистрация: 23.06.2009
Сообщений: 481
09.09.2014, 10:34
Цитата Сообщение от cinema4d Посмотреть сообщение
Ошибок не выводит доходит только до print_r
if опять поломался, видимо. проверять надо, все ли на месте, что должно быть
0
0 / 0 / 2
Регистрация: 07.11.2013
Сообщений: 165
09.09.2014, 10:48  [ТС]
два action должно быть?

Добавлено через 1 минуту
id_basket в чекауте нету

HTML5
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
<?php 
 
include_once'bd.php';
 
require'sum.php';
 
?>
 
<form method="post" action="order.php">
<table>
<tr>
<td style="background-color:#999999; padding: 10px;">позиция</td>
<td width="30px" style="background-color:#999999; padding: 10px;">изображение</td>
<td style="background-color:#999999; padding: 10px;">id</td>
<td style="background-color:#999999; padding: 10px;">Артикул</td>
<td style="background-color:#999999; padding: 10px;">Название</td>
<td width="50px" style="background-color:#999999; padding: 10px;">XS</td>
<td width="30px" style="background-color:#999999; padding: 10px;">S</td>
<td width="30px" style="background-color:#999999; padding: 10px;">M</td>
<td width="30px" style="background-color:#999999; padding: 10px;">L</td>
<td width="30px" style="background-color:#999999; padding: 10px;">XL</td>
<td width="30px" style="background-color:#999999; padding: 10px;">XXL</td>
 
<td style="background-color:#999999; padding: 10px;">цена</td>
<td style="background-color:#999999; padding: 10px;">колличество</td>
<td style="background-color:#999999; padding: 10px;">цена - колличество</td>
</tr> 
<?php
$sql_basket = "SELECT * FROM w_hudi, basket WHERE id_cus = '$login' AND w_hudi.id=basket.id_mod";
$query_basket = mysql_query($sql_basket) or die (mysql_error());
 
$i=0;
 
$total_check_summa = 0; //полная сумма чека 
 
while($row_from_basket = mysql_fetch_assoc($query_basket)){
?>
 
<tr>
<td style="background-color:#E0E0E0; padding: 10px;"><?=++$i?></td>
<td style="background-color:#E0E0E0; padding: 10px;">
<img style="width:100px; padding: 10px;" src='<?=$row_from_basket['image_pre'];?>' />
</td>
 
<td style="background-color:#E0E0E0; padding: 10px;"><?=$row_from_basket['id_mod']?><input type="hidden" name="id_mod[]" value='<?=$row_from_basket['id_mod'];?>'></td>
 
<td style="background-color:#E0E0E0; padding: 10px;"><?=$row_from_basket['code']?><input type="hidden" name="code[]" value='<?=$row_from_basket['code'];?>'></td>
<td style="background-color:#E0E0E0; padding: 10px;"><?=$row_from_basket['name_mod']?><input type="hidden" name="name_mod[]" value='<?=$row_from_basket['name_mod'];?>'></td>
 
<?php 
 
$xs = $row_from_basket['xs'];
$s = $row_from_basket['s'];
$m = $row_from_basket['m'];
$l = $row_from_basket['l'];
$xl = $row_from_basket['xl'];
$xxl = $row_from_basket['xxl'];
 
$pr = $row_from_basket['price'];
 
$size_number = $xs + $s + $m + $l + $xl + $xxl;
 
$number = $size_number * $pr;
 
$total_check_summa= $total_check_summa + $row_from_basket['sum'];
 
?>
 
<td style="background-color:#E0E0E0; padding: 10px;"><?=$row_from_basket['xs']?></td>
<td style="background-color:#E0E0E0; padding: 10px;"><?=$row_from_basket['s']?></td>
<td style="background-color:#E0E0E0; padding: 10px;"><?=$row_from_basket['m']?></td>
<td style="background-color:#E0E0E0; padding: 10px;"><?=$row_from_basket['l']?></td>
<td style="background-color:#E0E0E0; padding: 10px;"><?=$row_from_basket['xl']?></td>
<td style="background-color:#E0E0E0; padding: 10px;"><?=$row_from_basket['xxl']?></td>
 
 
<td style="background-color:#E0E0E0; padding: 10px;"><?=$row_from_basket['price']?></td>
<td style="background-color:#E0E0E0; padding: 10px;"><?=$size_number?> шт.</td>
<td style="background-color:#E0E0E0; padding: 10px;"><?=$number?> р.</td>
</tr>
 
<?php
}//while
?>
 <div style="border-bottom:#999999 thin solid; margin:0 auto; width:700px"><h3 style="color:#FF3300;">кол - во<?=$count?><br />сумма-<?=$total_check_summa?></h3></div>
 
</table>
<input type="hidden" name="action" value="basket_order" />
<input type="submit" name="submit" value="Заказать" />
</form>
Добавлено через 2 минуты
ДА! id_basket не передавался из чекаута

Добавлено через 1 минуту
MAV, скажите а как удалить из БД кучу строк по аналогии group ? примерчик можно)?
0
 Аватар для mav
228 / 206 / 120
Регистрация: 23.06.2009
Сообщений: 481
09.09.2014, 11:46
Цитата Сообщение от cinema4d Посмотреть сообщение
а как удалить из БД кучу строк по аналогии group ?
а зачем там GROUP, просто отдать туда идешники заказов и все, одним запросом или в цикле. удаление по значению поля удалит все записи, где это значение встречается
PHP
1
2
3
4
5
6
7
8
9
10
$orders = array('1', '2', '3', '4');
 
mysql_query("DELETE FROM orders WHERE order_id IN ('".implode("','", $orders)."')");
 
//или
 
for($i = 0; $i < count($orders); $i++)
{
    mysql_query("DELETE FROM orders WHERE order_id='".$orders[$i]."'");
}
1
0 / 0 / 2
Регистрация: 07.11.2013
Сообщений: 165
10.09.2014, 13:33  [ТС]
MAV, скажите в продолжении темы массивов, а как запихнуть значения из массива в функцию mail ??

PHP
1
2
3
4
5
6
7
8
9
10
11
12
while($row = mysql_fetch_array($res, MYSQL_ASSOC))
        {
            $data[] = "('".$login."', '".$order_id."', '".$row["id_mod"]."', '".$row["xs"]."', '".$row["s"]."', '".$row["m"]."', '".$row["l"]."', '".$row["xl"]."', '".$row["xxl"]."', '".$ts."', '".$row["code"]."', '".$row["name_mod"]."', '".$row["sum"]."', '".$row["quantity"]."', '".$row["price"]."')";
    
            $ids[] = $row["id_basket"];
        }
 
        if(!empty($data))
        {
            $query = "INSERT INTO orders (login, order_id, id_mod, xs, s, m, l, xl, xxl, ts, code, name_mod, sum_order, quantity, price) VALUES ".implode(",", $data);
            
            $query_up = mysql_query($query) or die (mysql_error());
0
 Аватар для mav
228 / 206 / 120
Регистрация: 23.06.2009
Сообщений: 481
10.09.2014, 14:09
Цитата Сообщение от cinema4d Посмотреть сообщение
а как запихнуть значения из массива в функцию mail ??
а какие именно данные должны попасть в тело письма?
в общем виде -- все то же самое (собираем массив из строк, которые будем отправлять), только с проверкой длины каждой строки, чтобы она не была больше 70 символов

на примере с базой
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
$message = "";
//это регулярное выражение для юникода, если исходный текст, например, в cp1251, то надо убрать маленькую u
$p = "/(.)/Uu";
 
while($row = mysql_fetch_array($res, MYSQL_ASSOC))
{
    $str = "('".$login."', '".$order_id."', '".$row["id_mod"]."', '".$row["xs"]."', '".$row["s"]."', '".$row["m"]."', '".$row["l"]."', '".$row["xl"]."', '".$row["xxl"]."', '".$ts."', '".$row["code"]."', '".$row["name_mod"]."', '".$row["sum"]."', '".$row["quantity"]."', '".$row["price"]."')";
 
    $len = mb_strlen($str);
 
    if($len > 70)
    {
        $str1 = array();
 
        if(preg_match_all($p, $str, $s))
        {
            $count = 0;
 
            foreach($s[1] as $symbol)
            {
                if($count == 70)
                {
                    $str1[] = "\n";
                    $count = 0;
                }
 
                $str1[] = $symbol;
 
                $count++;
            }
        }
 
        $str = implode("", $str1);
    }
 
    $data[] = $str;
}
 
$message = implode("\n", $data);
0
0 / 0 / 2
Регистрация: 07.11.2013
Сообщений: 165
10.09.2014, 15:17  [ТС]
тоже implode, догадывался)) а если взять из order готовый
PHP
1
$data[] = "('".$login."', '".$order_id."', '".$row["id_mod"]."', '".$row["xs"]."', '".$row["s"]."', '".$row["m"]."', '".$row["l"]."', '".$row["xl"]."', '".$row["xxl"]."', '".$ts."', '".$row["code"]."', '".$row["name_mod"]."', '".$row["sum"]."', '".$row["quantity"]."', '".$row["price"]."')";
тоже самое же да?

Добавлено через 59 минут
попробовал, одно и тоже Ваш быстрей, а как текстовые строки вставить в таком случае?
0
 Аватар для mav
228 / 206 / 120
Регистрация: 23.06.2009
Сообщений: 481
12.09.2014, 10:20
Цитата Сообщение от cinema4d Посмотреть сообщение
а как текстовые строки вставить в таком случае?
в каком смысле? это все строки, что в тело письма попадет
0
0 / 0 / 2
Регистрация: 07.11.2013
Сообщений: 165
12.09.2014, 10:22  [ТС]
MAV приветствую, подскажите почему что с датой

делаю так

$date = date('dmYHis');

потом запросом в БД но в БД записывается так 2147483647 ?????

Добавлено через 1 минуту
ну с письмом более менее разобрался, но не догоняю как например весь заказ перекинуть клиенту
0
 Аватар для mav
228 / 206 / 120
Регистрация: 23.06.2009
Сообщений: 481
12.09.2014, 10:35
Цитата Сообщение от cinema4d Посмотреть сообщение
потом запросом в БД но в БД записывается так 2147483647 ?????
а тип данных у этого поля какой? INT? так вот, поле с таким типом данных может принимать значение или от -2147483648 до как раз 2147483647, либо от 0 до 4294967295 если без знака, а у тебя число вида 12092014102630, тут нужен тип данных BIGINT.
и да, лучше вначале поставить год, а потом месяц и день, легче читать дату будет, да и сортровать при необходимости тоже $date = date("YmdHis");

Цитата Сообщение от cinema4d Посмотреть сообщение
ну с письмом более менее разобрался, но не догоняю как например весь заказ перекинуть клиенту
в письмо я бы вставил данные о заказе, то есть наименование с артикулом и список размеров с количеством

примерно такого вида
Ваш заказ 20140912122334

Трусы женские (артикул 2132145)
Размеры:
xs - 6 шт.
s - 2шт.
Цена: 100500 рублей

Труселя мужские (артикул 2132146)
Размеры:
l - 6 шт.
xl - 2шт.
Цена: 9000 рублей

Итого: 109500 рублей
для этого нужно взять эти данные (мы же их и так берем, когда заказ оформляем) и сформировать текст заказа
0
0 / 0 / 2
Регистрация: 07.11.2013
Сообщений: 165
12.09.2014, 10:51  [ТС]
так в письме будет цикл??
0
 Аватар для mav
228 / 206 / 120
Регистрация: 23.06.2009
Сообщений: 481
12.09.2014, 11:00
Цитата Сообщение от cinema4d Посмотреть сообщение
так в письме будет цикл??
текст письма будет формироваться циклом, да. причем можно это сделать там же, где и заполняем массив для отправки в таблицу с заказами. только наименование товара туда надо прикрутить
0
0 / 0 / 2
Регистрация: 07.11.2013
Сообщений: 165
12.09.2014, 11:13  [ТС]
в date падает только 12, а год и месяц нет)))))??????? и так было и раньше не правильно написал я Вам первый раз

bigint поставил
0
0 / 0 / 2
Регистрация: 07.11.2013
Сообщений: 165
17.09.2014, 16:57  [ТС]
Здравствуйте MAV!!))), опять я с ту..м вопросом, посмотрите если не сложно)

хочу проверить перед добавлением в корзину если такой товар уже, или еще нет, а если есть то склеить в одно с пересчетом кол - во! с помощью mysql_num_rows то есть если есть то UPDATE если нет то INSERT

до конца не допру сам

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
<?php
 
if(isset($_POST["action"]) && $_POST["action"] == "add_basket")
{
    session_start();
 
    include_once'bd.php';
    
    $login = mysql_real_escape_string($_POST['login']);
    
$sql_basket = "SELECT * FROM w_hudi, basket WHERE id_cus = '$login' AND w_hudi.id=basket.id_mod";
 
    $xs = isset($_POST['xs'])?(mysql_real_escape_string($_POST['xs'])):('');
    $s = isset($_POST['s'])?(mysql_real_escape_string($_POST['s'])):('');
    $m = isset($_POST['m'])?(mysql_real_escape_string($_POST['m'])):('');
    $l = isset($_POST['l'])?(mysql_real_escape_string($_POST['l'])):('');
    $xl = isset($_POST['xl'])?(mysql_real_escape_string($_POST['xl'])):('');
    $xxl = isset($_POST['xxl'])?(mysql_real_escape_string($_POST['xxl'])):('');
 
$query_basket = mysql_query($sql_basket) or die (mysql_error());
 
$row_from_basket = mysql_fetch_assoc($query_basket);
 
$price = mysql_real_escape_string($_POST['price']);
 
$pr = $row_from_basket['price'];
 
$quantity = $xs + $s + $m + $l + $xl + $xxl;
 
    $sum = $quantity * $price;
 
    $id_mod = mysql_real_escape_string($_GET['id']);
    
    $customer = session_id();
    
    $code = mysql_real_escape_string($_POST['code']);
        $name_mod = mysql_real_escape_string($_POST['name_mod']);
    
        $basketcode = "SELECT * FROM basket WHERE code = '$code' AND  id_mod = 'id_mod'";
        $res=mysql_query($basketcode);
        
        $res_rows = mysql_num_rows($res);
        
        if ( !$res )
        
        {
        
        echo "ЕСТЬ DA";
        
        echo $res;
        
        }
        else
        
        {
        
        echo "НЕТ NOT";
        
        echo $res;
        
        }
    
   $sql_add_basket = "INSERT INTO basket (customer, id_mod, xs, s, m, l, xl, xxl, code, id_cus, quantity, sum, name_mod, price) VALUES ('$customer', '$id_mod', '$xs', '$s', '$m', '$l', '$xl', '$xxl', '$code', '$login', '$quantity', '$sum', '$name_mod', '$price')";
 
    $query_add_basket = mysql_query($sql_add_basket) or die (mysql_error());
 
//header('Location:cart.php?id='.$id);
 
}
 
?>
Добавлено через 1 час 32 минуты
Вот так запрос проходит, Все вроде норм но размеры стираются и записываются новые, а надо чтоб слогались со старыми что то не так у меня

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
<?php
 
if(isset($_POST["action"]) && $_POST["action"] == "add_basket")
{
    session_start();
 
    include_once'bd.php';
    
    $login = mysql_real_escape_string($_POST['login']);
    
$sql_basket = "SELECT * FROM w_hudi, basket WHERE id_cus = '$login' AND w_hudi.id=basket.id_mod";
 
    $xs = isset($_POST['xs'])?(mysql_real_escape_string($_POST['xs'])):('');
    $s = isset($_POST['s'])?(mysql_real_escape_string($_POST['s'])):('');
    $m = isset($_POST['m'])?(mysql_real_escape_string($_POST['m'])):('');
    $l = isset($_POST['l'])?(mysql_real_escape_string($_POST['l'])):('');
    $xl = isset($_POST['xl'])?(mysql_real_escape_string($_POST['xl'])):('');
    $xxl = isset($_POST['xxl'])?(mysql_real_escape_string($_POST['xxl'])):('');
 
$query_basket = mysql_query($sql_basket) or die (mysql_error());
 
$row_from_basket = mysql_fetch_assoc($query_basket);
 
$price = mysql_real_escape_string($_POST['price']);
 
$pr = $row_from_basket['price'];
 
    //$quantity = $xs + $s + $m + $l + $xl + $xxl;
 
    //$sum = $quantity * $price;
 
    $id_mod = mysql_real_escape_string($_GET['id']);
    
    $customer = session_id();
    
    $code = mysql_real_escape_string($_POST['code']);
        $name_mod = mysql_real_escape_string($_POST['name_mod']);
    
        $basketcode = "SELECT * FROM basket WHERE code = '$code'";
        $res=mysql_query($basketcode);
        
        $res_rows = mysql_num_rows($res);
        
        if ( $res_rows )
        
        {
        
        echo "ЕСТЬ DA";
        
        $update_s = "SELECT * FROM basket WHERE code = '$code'";
        $res_query = mysql_query($update_s);
        
        $xs2 = $res_query['xs'];
        $s2 = $res_query['s'];
        $m2 = $res_query['m'];
        $l2 = $res_query['l'];
        $xl2 = $res_query['xxl'];
        $xxl2 = $res_query['xxl'];
        
        $xs3 = $xs2 + $xs;
        $s3 = $s2 + $s;
        $m3 = $m2 + $m;
        $l3 = $l2 + $l;
        $xl3 = $xl2 + $xl;
        $xxl3 = $xxl2 + $xxl;
        
        $quantity1 = $res_query['quantity'];
        
        $quantity2 = $xs + $xs2 + $s +  $s2 + $m + $m2 + $l + $l2 + $xl + $xl2 + $xxl + $xxl2;
        $allquantity = $quantity2 + $quantity1;
        
        $sum3 = $allquantity * $price;
        
        $sql_update = "UPDATE basket SET customer = '$customer', id_mod = '$id_mod', xs = '$xs3', s = '$s3', m = '$m3', l = '$l3', xl = '$xl3', xxl = '$xxl3', quantity = '$allquantity', sum = '$sum3'  WHERE id_mod = '$id_mod' ";
 
$query_up = mysql_query($sql_update) or die (mysql_error());
        
        echo "UPDATE";
        
        }
        else
        
        {
        
        echo "НЕТ NOT";
        
        $quantity = $xs + $s + $m + $l + $xl + $xxl;
        $sum = $quantity * $price;
        
        $sql_add_basket = "INSERT INTO basket (customer, id_mod, xs, s, m, l, xl, xxl, code, id_cus, quantity, sum, name_mod, price) VALUES ('$customer', '$id_mod', '$xs', '$s', '$m', '$l', '$xl', '$xxl', '$code', '$login', '$quantity', '$sum', '$name_mod', '$price')";
 
    $query_add_basket = mysql_query($sql_add_basket) or die (mysql_error());
        
        echo "INSERT";
        
        }
    
//$sql_add_basket = "INSERT INTO basket (customer, id_mod, xs, s, m, l, xl, xxl, code, id_cus, quantity, sum, name_mod, price) VALUES ('$customer', '$id_mod', '$xs', '$s', '$m', '$l', '$xl', '$xxl', '$code', '$login', '$quantity', '$sum', '$name_mod', '$price')";
 
    //$query_add_basket = mysql_query($sql_add_basket) or die (mysql_error());
 
//header('Location:cart.php?id='.$id);
 
}
 
?>
0
 Аватар для mav
228 / 206 / 120
Регистрация: 23.06.2009
Сообщений: 481
19.09.2014, 12:34
Цитата Сообщение от cinema4d Посмотреть сообщение
Вот так запрос проходит
что-то такое надо попробовать, видимо. нет смысла складывать отдельно все параметры, так как количество и цена будут тоже увеличиваться на то число, которое получилось по новым данным
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
$quantity = $xs + $s + $m + $l + $xl + $xxl;
$sum = $quantity * $price;
 
//так все-таки по id_mod проверяем или по code? вообще, думаю, что надо проверять по пользователю и id товара
$basketcode = mysql_query("SELECT COUNT(code) AS num FROM basket WHERE сustomer = '$customer' AND id_mod = '$id_mod'");
$rowcode = mysql_fetch_assoc($basketcode);
 
if($rowcode["num"] > 0)
{
    echo "ЕСТЬ DA";
        
        $sql_update = "UPDATE basket SET xs=xs+".$xs.", s=s+".$s.", m=m+".$m.", l=l+".$l.", xl=xl+'$xl', xxl=xxl+".$xxl3.", quantity=quantity+".$quantity.", sum=sum+"$sum." WHERE сustomer = '$customer' AND id_mod = '$id_mod'";
    $query_up = mysql_query($sql_update) or die (mysql_error());
        
    echo "UPDATE";
}
else
{
    echo "НЕТ NOT";
 
        $sql_add_basket = "INSERT INTO basket (customer, id_mod, xs, s, m, l, xl, xxl, code, id_cus, quantity, sum, name_mod, price) VALUES ('$customer', '$id_mod', '$xs', '$s', '$m', '$l', '$xl', '$xxl', '$code', '$login', '$quantity', '$sum', '$name_mod', '$price')";
    $query_add_basket = mysql_query($sql_add_basket) or die (mysql_error());
        
        echo "INSERT";
        
}
1
0 / 0 / 2
Регистрация: 07.11.2013
Сообщений: 165
19.09.2014, 13:54  [ТС]
Спасибо за ответ, сделал подобное но больше кода )) попробую Вашим способом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.09.2014, 13:54

Как лучше: создать одну таблицу стилей css или несколько?
Привет. Попробовал не пихать всё в один файл style.css, а сделать несколько таких файлов: style1.css, style2.css, style3.css. Всё работает...

Как лучше сделать большую базу данных?
Уважаемые знатоки, подскажите, пожалуйста, как лучше сделать большую базу данных. Уже несколько дней сижу и перечитываю все возможные...

Что лучше? Несколько условии или один цикл с массивом?
Всем привет! На сайте есть скрипт с несколькими условиями(довольно таки много условии). И ответ я получаю через 800-850 мс. Как быть,...

Как сохранить большую таблицу в pdf?
Добрый день. Делаю расписание универское. Таблица большая. Хочу сделать ее в pdf. Таблица готова, однако, после сохранения в pdf, она...

Как вместить большую таблицу в Div
День добрый. Помогите решить трабл. Проблема в том что в дифе .centr находиться таблица в которую выгружаются данный с Mysql. Из-за...


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

Или воспользуйтесь поиском по форуму:
117
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов • Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp • Смежный проект:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru