За последние 24 часа нас посетили 22287 программистов и 1024 робота. Сейчас ищут 728 программистов ...

Как такое можно реализовать?

Тема в разделе "PHP для новичков", создана пользователем Asteroth, 14 авг 2019.

  1. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    Есть страничка

    Код (Text):
    1. <!doctype html>
    2. <html lang="ru">
    3. <head>
    4. <meta charset="utf-8">
    5.     <title>Админ-панель</title>
    6.     <style>
    7.     #user {
    8.     width: 300px; /* Ширина поля в пикселах */
    9.    }
    10.         @media print {
    11.         header, footer, aside, nav, form, iframe, .menu, .hero, .adslot {
    12.         display: none;
    13.     }
    14.         .visible-print {
    15.         display: inherit !important;
    16.     }
    17.         .hidden-print {
    18.         display: none !important;
    19.     }
    20.    }
    21.       #zatemnenie {
    22.      
    23.         width: 100%;
    24.         height: 100%;
    25.         position: relative;
    26.         top: 0;
    27.         left: 0;
    28.         display: none;
    29.       }
    30.       #okno {
    31.         width: 100%;
    32.         height: 100%;
    33.         text-align: relative;
    34.         padding: 15px;
    35.         border: 3px solid #35a764;
    36.         border-radius: 10px;
    37.         color: #111111;
    38.         position: relative;
    39.         top: 0;
    40.         right: 0;
    41.         bottom: 0;
    42.         left: 0;
    43.         margin: auto;
    44.         background: #fff;
    45.       }
    46.       #zatemnenie:target {display: block;}
    47.      
    48.                
    49.       .close {
    50.         position: relative;
    51.         display: inline-block;
    52.         font-family: Arial,Helvetica,FreeSans,"Liberation Sans","Nimbus Sans L",sans-serif;
    53.         font-size: 1.5em;
    54.         font-weight: 700;
    55.         color: rgb(245,245,245);
    56.         text-shadow: 0 -1px rgba(0,0,0,.1);
    57.         text-decoration: none;
    58.         user-select: none;
    59.         padding: .3em 1em;
    60.         outline: none;
    61.         border: none;
    62.         border-radius: 3px;
    63.         background: #0c9c0d linear-gradient(#82d18d, #0c9c0d);
    64.         box-shadow: inset #72de26 0 -1px 1px, inset 0 1px 1px #98ff98, #3caa3c 0 0 0 1px, rgba(0,0,0,.3) 0 2px 5px;
    65.         -webkit-animation: pulsate 1.2s linear infinite;
    66.         animation: pulsate 1.2s linear infinite;
    67.     }
    68.       .close:hover {
    69.         -webkit-animation-play-state: paused;
    70.         animation-play-state: paused;
    71.         cursor: pointer;
    72.     }
    73.       .close:active {
    74.         top: 1px;
    75.         color: #fff;
    76.         text-shadow: 0 -1px rgba(0,0,0,.3), 0 0 5px #ffd, 0 0 8px #fff;
    77.         box-shadow: 0 -1px 3px rgba(0,0,0,.3), 0 1px 1px #fff, inset 0 1px 2px rgba(0,0,0,.8), inset 0 -1px 0 rgba(0,0,0,.05);
    78.     }
    79.         @-webkit-keyframes pulsate {
    80.         50% {color: #fff; text-shadow: 0 -1px rgba(0,0,0,.3), 0 0 5px #ffd, 0 0 8px #fff;}
    81.     }
    82.         @keyframes pulsate {
    83.         50% {color: #fff; text-shadow: 0 -1px rgba(0,0,0,.3), 0 0 5px #ffd, 0 0 8px #fff;}
    84.     }
    85.            
    86.       .close:hover {background: #e6e6ff;}
    87.     </style>
    88.  
    89. </head>
    90. <body>
    91. <div id="zatemnenie">
    92.       <div id="okno">
    93.      
    94.   <?php
    95.     $host = '192.168.77.88';  // Хост, у нас все локально
    96.     $user = 'root';    // Имя созданного вами пользователя
    97.     $pass = '12345'; // Установленный вами пароль пользователю
    98.     $db_name = 'test';   // Имя базы данных
    99.     $link = mysqli_connect($host, $user, $pass, $db_name); // Соединяемся с базой
    100.  
    101.     // Ругаемся, если соединение установить не удалось
    102.     if (!$link) {
    103.       echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
    104.       exit;
    105.     }
    106.  
    107.     //Если переменная Name передана
    108.     if (isset($_POST["Card_number"])) {
    109.       //Если это запрос на обновление, то обновляем
    110.       if (isset($_GET['red_id'])) {
    111.           $sql = mysqli_query($link, "UPDATE `data_db` SET `Card_number` = '{$_POST['Card_number']}', `Card_Surname_And_Name_Of_The_Patient_And_Year` = '{$_POST['Card_Surname_And_Name_Of_The_Patient_And_Year']}',`Card_number_of_patients` = '{$_POST['Card_number_of_patients']}' WHERE `ID`={$_GET['red_id']}");
    112.          
    113.       } else {
    114.           //Иначе вставляем данные, подставляя их в запрос
    115.           $sql = mysqli_query($link, "INSERT INTO `data_db` (`Card_number`, `Card_Surname_And_Name_Of_The_Patient_And_Year`, `Card_number_of_patients`) VALUES ('{$_POST['Card_number']}', '{$_POST['Card_Surname_And_Name_Of_The_Patient_And_Year']}', '{$_POST['Card_number_of_patients']}')");
    116.        
    117.       }
    118.  
    119.       //Если вставка прошла успешно
    120.       if ($sql) {
    121.         echo '<p>Успешно!</p>';
    122.        
    123.       } else {
    124.         echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
    125.        
    126.       }
    127.     }
    128.  
    129.     if (isset($_GET['del_id'])) { //проверяем, есть ли переменная
    130.       //удаляем строку из таблицы
    131.       $sql = mysqli_query($link, "DELETE FROM `data_db` WHERE `ID` = {$_GET['del_id']}");
    132.       if ($sql) {
    133.         echo "<p>Удален.</p>";
    134.       } else {
    135.         echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
    136.       }
    137.     }
    138.  
    139.     //Если передана переменная red_id, то надо обновлять данные. Для начала достанем их из БД
    140.     if (isset($_GET['red_id'])) {
    141.       $sql = mysqli_query($link, "SELECT `ID`, `Card_number`, `Card_Surname_And_Name_Of_The_Patient_And_Year`, `Card_number_of_patients` FROM `data_db` WHERE `ID`={$_GET['red_id']}");
    142.       $product = mysqli_fetch_array($sql);
    143.     }
    144.   ?>
    145.   <form action="" method="post">
    146.     <table width="80%">
    147.       <tr>
    148.             <td width="20%"><p style="margin-left: 5px">№ Картки:</td>
    149.         <tr>
    150.             <td align="left" valign="top"><p style="margin-left: 5px"><input id="user" type="number" step="any" name="Card_number" value="<?= isset($_GET['red_id']) ? $product['Card_number'] : ''; ?>"></td>
    151.         <tr>
    152.            
    153.       </tr>
    154.    
    155.       <tr>
    156.            <tr>
    157.         <td>Количество пациентов</td>
    158.        
    159.        
    160.             <tr>
    161.                 <td align="left" valign="top"><input type="number" size="5" name="Card_number_of_patients" value="<?= isset($_GET['red_id']) ? $product['Card_number_of_patients'] : ''; ?>"></td>
    162.                
    163.                
    164.             </tr>  
    165.       </tr>
    166.    
    167.       <tr>
    168.         <td><p style="margin-left: 5px">Фамилия, имя и возраст пациента</td>
    169.  
    170.  
    171.         <tr>
    172.         <?php
    173.         $a = isset($_GET['red_id']) ? $product['Card_number_of_patients']: '';
    174.         $b = 1;
    175.         $i = 1;
    176.         if ($a >= $b) {
    177.             $valueProduct1 = isset($_GET['red_id']) ? $product['Card_Surname_And_Name_Of_The_Patient_And_Year']: '';
    178.  
    179.              while ($i <= $a ) {
    180.         $i++;        
    181.         echo '<tr>' .
    182.             '<td align="left" valign="top"><p style="margin-left: 5px"><input type="text" size="30" name="Card_Surname_And_Name_Of_The_Patient_And_Year" value="  ' . $valueProduct1 . ' "></td>' .
    183.    
    184.            
    185.             '</tr>';
    186.       }
    187.            
    188.         }
    189.     ?>
    190.       <tr>
    191.               <td align="left" valign="top"><input type="submit" value="Ввести данні" class="close"></td>
    192.             <td align="right" valign="bottom"><a href="#" class="close">Закрыть окно</a></td>
    193.       </tr>      
    194.     </table>
    195.   </form>
    196.       </div>
    197.     </div>
    198.     <table>
    199.     <td style="width: 100px; height: 50px;"><a href="#zatemnenie" class="close" >Меню ввода</a></td>
    200.     </table>
    201.    
    202.  
    203. <div style="height:420px;width:1170px;overflow-y:scroll;">  
    204.   <table width="100%" cellspacing="0" cellpadding="4" border="1" class="table table-bordered gantry-center">
    205.     <tr>
    206.         <td> Редактирование </td>
    207.         <td> Удаление </td>
    208.         <td> № картки </td>
    209.         <td> Количество пациентов </td>
    210.         <td> Фамилия имя пациента и год </td>
    211.     </tr>
    212.     <?php
    213.       $sql = mysqli_query($link, 'SELECT `ID`,`Card_number`, `Card_Surname_And_Name_Of_The_Patient_And_Year`, `Card_number_of_patients` FROM `data_db` ORDER BY `id` DESC LIMIT 100' );
    214.       while ($result = mysqli_fetch_array($sql)) {
    215.         echo '<tr>' .
    216.             "<td><a href='?red_id={$result['ID']}.#zatemnenie'>Изменить</a></td>" .
    217.             "<td><a href='?del_id={$result['ID']}'>Удалить</a></td>" .
    218.             "<td> {$result['Card_number']} </td>" .
    219.              "<td> {$result['Card_number_of_patients']} </td>" .
    220.              "<td> {$result['Card_Surname_And_Name_Of_The_Patient_And_Year']} </td>" .
    221.              '</tr>';
    222.       }
    223.     ?>
    224.   </table>
    225.   </div>
    226.   <p><p><a href="?add=new,#zatemnenie", class="close">Добавить новый</a></p>
    227. </body>
    228. </html>
    --- Добавлено ---
    Есть база MySql

    Код (Text):
    1. -- --------------------------------------------------------
    2. -- Сервер:                       192.168.77.88
    3. -- Версія сервера:               10.3.13-MariaDB - mariadb.org binary distribution
    4. -- ОС сервера:                   Win64
    5. -- HeidiSQL Версія:              10.1.0.5464
    6. -- --------------------------------------------------------
    7.  
    8. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    9. /*!40101 SET NAMES utf8 */;
    10. /*!50503 SET NAMES utf8mb4 */;
    11. /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    12. /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    13.  
    14.  
    15. -- Dumping database structure for test
    16. DROP DATABASE IF EXISTS `test`;
    17. CREATE DATABASE IF NOT EXISTS `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
    18. USE `test`;
    19.  
    20. -- Dumping structure for таблиця test.data_db
    21. DROP TABLE IF EXISTS `data_db`;
    22. CREATE TABLE IF NOT EXISTS `data_db` (
    23.   `ID` int(11) NOT NULL AUTO_INCREMENT,
    24.   `Card_Surname_And_Name_Of_The_Patient_And_Year` longtext DEFAULT NULL,
    25.   `Card_number_of_patients` char(10) DEFAULT NULL,
    26.   `Card_number` char(10) DEFAULT NULL,
    27.   PRIMARY KEY (`ID`)
    28. ) ENGINE=InnoDB AUTO_INCREMENT=222 DEFAULT CHARSET=utf8;
    29.  
    30. -- Dumping data for table test.data_db: ~3 rows (приблизно)
    31. DELETE FROM `data_db`;
    32. /*!40000 ALTER TABLE `data_db` DISABLE KEYS */;
    33. INSERT INTO `data_db` (`ID`, `Card_Surname_And_Name_Of_The_Patient_And_Year`, `Card_number_of_patients`, `Card_number`) VALUES
    34.     (212, 'Михаил Арбузов 20  ', '3', '3'),
    35.     (217, 'Владимир Анатолиевич 30', '1', '2'),
    36.     (220, 'Мария Сергеивна 28    ', '1', '1');
    37. /*!40000 ALTER TABLE `data_db` ENABLE KEYS */;
    38.  
    39. /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
    40. /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
    41. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
     
  2. Asteroth2

    Asteroth2 Новичок

    С нами с:
    14 авг 2019
    Сообщения:
    3
    Симпатии:
    0
    Как оно есть сейчас.

    [​IMG]

    Как должно быть.

    [​IMG]

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

    Пришлось разбить на 2 части так как не влазит полностью.
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    Прям охрененно... Есть то, есть это и все... Ни вопроса, ничего...
     
  4. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    видимо уже реализовал))
     
  5. Asteroth2

    Asteroth2 Новичок

    С нами с:
    14 авг 2019
    Сообщения:
    3
    Симпатии:
    0
    Может я не правильно что то написал, суть вопроса в том как cделать так как на второй картинке. Вторая картинка нарисована в Paint
     
    #5 Asteroth2, 14 авг 2019
    Последнее редактирование: 14 авг 2019
  6. Asteroth2

    Asteroth2 Новичок

    С нами с:
    14 авг 2019
    Сообщения:
    3
    Симпатии:
    0
    Нет оно не сделано. Вторая картинка нарисована в Paint. Вопрос в том как сделать так, как на второй картинке.
     
  7. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    даже когда я писал выше, у тебя не было 2 сообщения в теме.
    наверно на модерацию тебя отправили
     
  8. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    Мне пришлось создать еще один акаунт что бы вместилось сообщение, так как ограничено количество символов 10000. А 2 сообщения склеивают в 1. Наверное поетом часть не отображалась, так как второй акаунт проходил авторизацию через модератора.
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Никак, потому что нормализация.

    3 нормальная форма плюс суррогатные ключи (идентификаторы).
     
  10. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    Вы имеете в виду поставить какой то ключ вместе с данными которые вводяться?

    типа вносить в базу так ,"1", Михаил Арбузов 20 ,"2", Владимир Анатолиевич 30 ,"3", Мария Сергеивна 28 ,. Где комы и лапки являються ключами?

    Я что то подумал над тем как в играх реализован инвентарь который храниться в базе данных. Там ведь должен храниться перечень предметов которые находяться в инвентаре. К примеру id1,id2 где кома свого роду маркера для зчитування строк, а id это сам предмет . Или не стоит мне там копать?

    Можете направить на путь истины дать сылку на информацию з чего начать. Я думал создать еще одну таблицу, а потом данные както склеивать. Но почему то боюсь что потом могут возникнуть проблемы, так как информация как бы является цельной.
     
  11. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Сами вбейте обозначенные мной ключевые слова в поисковик. Да, делите на две связанные таблицы (карточки и пациенты). Для обеспечения целостности можете использовать внешние ключи вплоть до настройки каскадного удаления и т.п.
     
  12. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    Понял попробую.