· 8 years ago · Nov 28, 2017, 08:40 AM
1<?php
2#php -S localhost:8000 test_case.php
3
4
5$mysqli = new mysqli("127.0.0.1", "root", "", "test");
6
7if ($mysqli->connect_error) {
8 die('Ошибка Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ('.$mysqli->connect_errno.') '. $mysqli->connect_error);
9}
10
11// Создана ли таблица? ИнициализациÑ.
12$result = $mysqli->query("SHOW TABLES LIKE 'entity'");
13if (!$result->num_rows) {
14
15 $sql_arr = [];
16 $sql_arr[] = "DROP TABLE IF EXISTS `entity`;";
17 $sql_arr[] = "DROP TABLE IF EXISTS `phones`;";
18 $sql_arr[] = "DROP TABLE IF EXISTS `workers`;";
19 $sql_arr[] = "
20 CREATE TABLE `entity` (
21 `id` int(11) NOT NULL AUTO_INCREMENT,
22 `address` varchar(255) NOT NULL,
23 `name` varchar(255) NOT NULL,
24 PRIMARY KEY (`id`)
25 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
26 ";
27
28 $sql_arr[] = "
29 INSERT INTO `entity` (`id`, `address`, `name`) VALUES
30 (1, 'МоÑква кремль 1', 'кремль'),
31 (2, 'МоÑква кремль 2', 'Ñ„Ñб');
32 ";
33
34 $sql_arr[] = "
35 CREATE TABLE `phones` (
36 `id` int(11) NOT NULL AUTO_INCREMENT,
37 `phone` varchar(10) NOT NULL,
38 `type` varchar(10) NOT NULL,
39 `parent_id` int(11) NOT NULL,
40 PRIMARY KEY (`id`)
41 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
42 ";
43
44 $sql_arr[] = "
45 INSERT INTO `phones` (`id`, `phone`, `type`, `parent_id`) VALUES
46 (1, '8926111111', 'entity', 1),
47 (2, '8926111112', 'entity', 2),
48 (3, '8926111113', 'worker', 1),
49 (4, '8926111114', 'worker', 2);
50 ";
51
52 $sql_arr[] = "
53 CREATE TABLE `workers` (
54 `id` int(11) NOT NULL AUTO_INCREMENT,
55 `name` varchar(255) NOT NULL,
56 `entity_id` int(11) NOT NULL,
57 PRIMARY KEY (`id`)
58 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
59 ";
60
61 $sql_arr[] = "
62 INSERT INTO `workers` (`id`, `name`, `entity_id`) VALUES
63 (1, 'Путин', 1),
64 (2, 'Чебурашка', 2);
65 ";
66
67 foreach ($sql_arr as $sql) {
68 $mysqli->query($sql);
69 }
70}
71
72?>
73
74
75<?php
76// получить Ñотрудников и их телефоны
77$result = $mysqli->query("SELECT w.id, w.name, e.name FROM `workers` w LEFT JOIN `entity` e on w.entity_id=e.id");
78$data = $result->fetch_all();
79
80foreach ($data as $key => $value) {
81 $result = $mysqli->query("SELECT id, phone FROM `phones` WHERE parent_id =".$value[0]);
82 $data[$key][3] = $result->fetch_all();
83}
84
85?>
86
87
88<!doctype html>
89<html lang="en">
90 <head>
91 <meta charset="utf-8">
92 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
93 </head>
94 <body>
95
96 <div class="wrap">
97 <h1>СпиÑок Ñотрудников</h1>
98 <?php foreach ($data as $key => $value): ?>
99 <div class="item" data-id="<?php echo $value[0]?>">
100 <p>ИмÑ: <?php echo $value[1]?></p>
101 <p>КомпаниÑ: <?php echo $value[2]?></p>
102 <p>Телефоны:</p>
103 <?php foreach ($value[3] as $key => $value): ?>
104 <p>
105 <input type="text" value="<?php echo $value[1]?>"><button class="btn-edit" data-id="<?php echo $value[0]?>">Сохранить</button>
106 </p>
107 <?php endforeach ?>
108 </div>
109 <hr>
110 <?php endforeach ?>
111 </div>
112
113 </body>
114</html>
115
116<script>
117 // изменить телефон
118 $(document).on('click', '.btn-edit', function(){
119 var id = $(this).data('id');
120 var phone = $(this).siblings("input").val();
121 $.ajax({
122 type: "POST",
123 url: "/task3ajax.php",
124 data: "id="+id+"&phone="+phone,
125 success: function(){
126 alert("Сохранено");
127 }
128 });
129 });
130</script>
131
132<?php
133mysqli_close($mysqli);
134?>
135
136
137/*
138Файл task3ajax.php
139*/
140
141<?php
142
143// Изменение номера телефона
144$mysqli = new mysqli("127.0.0.1", "root", "", "test");
145
146if ($mysqli->connect_error) {
147 die('Ошибка Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ('.$mysqli->connect_errno.') '. $mysqli->connect_error);
148}
149
150$id = $_POST['id'];
151$phone = $_POST['phone'];
152$mysqli->query("UPDATE phones SET phone = ".$phone." WHERE id = ".$id);