упаковка - точно так же: id - номер записи id смены, id человека дальше я так понимаю идут номера - это поля типа INT с которыми вы уже знакомы =) ну и так далее. Как называть поля - ваше личное дело. Называйте как-нить близко по смыслу какимнить английским словом. Последние четыре ведомости можно объединить в одну: id записи, тип операции - первичная/вторичная. Тоже наверное INT, цех - INT id смены, id мастера, числовые поля.
Дальше вам нужно придумать как это все будет управляться и использовать, и можно программить или идти к программистам. По готовому техзаданию это будет недорого. Т.к. вам же красивости интерфейса и всякие такие штуки не нужны, думается. завтра нарисую простой запрос из двух таблиц и его обработку. т.е. например как одним запросом получить всех приписанных к смене и их имена, например. какие-то еще поля нужны? Ну там тип должности, статусы работников? Мастер, старший мастер, "рядовой", ответственный, ляляля... Думайте. Вперед. =) немножко осталось!
Спасибо огромное, за столь подробное описание действий, опираясь на Ваши инструкции создал 18 таблиц, сейчас думаю нужно их отобразить графически что бы нагляднее самому понимать что да как. Еще один вопрос, если у меня в таблице имеется допустим УПАКОВКА и выгрузка со складов, и следующий столбец в таблице с описанием что в это складов включено, можно создать отдельную таблицу, в которую внести описание просто ID- записи и нумерацию складов(второй строкой соответственно)?
Если я правильно понял, надо действовать как со сменами - отдельная таблица: id id товара номер склада количество второй строкой не надо вносить. соответственно напрашивается таблица с типами товаров.
нет там не типы товара, а количество, отпущенное именно выбранного склада. вот пример структуры таблицы Упаковка: id int(10) UNSIGNED Нет None auto_increment id_smena int(10) UNSIGNED Нет None id_masters int(10) UNSIGNED Нет None packaging_of int(10) UNSIGNED Нет None id_sklad int(10) UNSIGNED Нет None и соответственно к ней другая таблица id int(10) UNSIGNED Нет None auto_increment num_skl int(10) UNSIGNED Нет None Так верно?
id_masters - это множественное число? Упаковка(номер смены, мастер, упаковка всего, упаковки и выгрузки и склада, номера складов от 1 до 11,) packaging_of - это у вас все вместе и упаковка всего и упаковки и выгрузки? Я думаю, вы хотели бы чтобы тут было три поля =) Двас - вы хотите вести лог отпущенного со склада товара? у вас всегда один и тот же товар? или что там у вас. id int(10) UNSIGNED Нет None auto_increment num_skl int(10) UNSIGNED Нет None в этой таблице у вас только номер склада сохраняется и все. =) Для таких таблиц рекомендую таки-добавить те параметры, которые вы хотите сохранять - ну там, колличество... Дату и время - обязательно. А то потом концов не найдешь. База данных лишнего не сохраняет. Все надо говорить ей =) потом. int(10) UNSIGNED Нет None Это не то что вы хотите =) Вы хотите INT UNSIGNED NOT NULL видимо. десяточку в инт не надо писать, если не хотите ее использовать по прямому назначению: http://phpclub.ru/mysql/doc/column-types.html
нет, так таблица называется masters. это упаковано всего, как бы отдельная графа. понял исправлю. Десятка встает по-умолчанию, думал поставить единицу, или этого будет мало?
и еще такой вопрос, таблицы между собой нужно связывать? в phpmyadmin есть такая функция Внутренние связи1 FOREIGN KEY (INNODB)(либо on delete, либо on update) [/b]
Они есть эти журналы masters id int(1) UNSIGNED Нет None auto_increment name varchar(255) utf8_general_ci Нет None surname varchar(255) utf8_general_ci Нет None post varchar(255) utf8_general_ci Нет None и smena id int(10) UNSIGNED Нет None auto_increment id dispatcher int(11) Нет None [/i]
я имею в виду целиком. с рабочими страничками на сервере, чтобы добавлялись записи и так далее. вам будет над чем поразмыслить в процессе.
хм... это уже интереснее... только не знаю как.. если не трудно киньте ссылку что можно почитать на эту тему....
=) задавайте вопросы, либо нанимайте программиста. "что-то почитать" можно только по определенному вопросу.
ну для начала надо определиться с записью в БД. Потом с выборкой. но самое простое с чего стоит начать ДО базы - это страничка такого типа: PHP: <form method='post'> <input name='test' type='text'><br> <textarea name='lalala'> Ляляля жужужу </textarea> </form> <?php if ( isset($_POST['test']) ) { echo 'test = ' . $_POST['test']; } else { echo 'нету test'; } echo "<br>\n"; if ( isset($_POST['lalala']) ) { echo 'lalala = ' . $_POST['lalala']; } else { echo 'нету lalala'; } Если тут у вас нет вопросов - формируйте форму добавления человечков и страницу списка всех работников с их параметрами и должностями и привилегиям и чем там еще.
получилось следующее: HTML: <FORM ACTION="file.php" METHOD=POST> <input name="name" type="text" />Имя<br /> <input name="surname" type="text" />Фамилия<br /> <input name="post" type="text" />Должность<br /> <input name="Submit" type=submit value="Отправить"> </FORM> и PHP: <?php if ( isset($_POST['name']) ) { echo 'name = ' . $_POST['name']; } else { echo 'нету name'; } echo "<br>\n"; if ( isset($_POST['surname']) ) { echo 'surname = ' . $_POST['surname']; } else { echo 'нету surname'; } echo "<br>\n"; if ( isset($_POST['post']) ) { echo 'post = ' . $_POST['post']; } else { echo 'нету post'; } ?>
zarapyan Я уже писал Возьмите произвольную табличку и сделайте форму которая будет получать данные от пользователя и затем добавлять данные в эту таблицу. Отдельно сделать страничку, на которой можно будет увидеть данные из таблицы. И последним пунктом изменить первую форму так, чтобы можно было редактировать существующие записи.
mysql_real_escape_string($_POST['name']) - чтобы вносить в базу данных. желательно обрезать строку до этого момента до нужной длинны, чтобы в базу не лезло всякое лишнее, например пробелы. примерно так: $_POST['name'] = (string)substr(trim($_POST['name']), 0, 255); коннектитесь к БД PHP: <?php $db = new mysqli('127.0.0.1', 'login', 'password', 'DATABASE'); if (mysqli_connect_errno()) { //debug('Облом!'); printf("Подключение к серверу MySQL невозможно. Код ошибки: %s\n", mysqli_connect_error()); exit; } ?> и дальше работаете с этим уже. я люблю формировать куери отдельно заранее. но это не обязательно. PHP: <?php $QUERY = "INSERT INTO masters (`name`,`surname`,`post`) VALUES ('".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['surname'])."', '".mysql_real_escape_string($_POST['post'])."')"; if ($result = $db->query($QUERY)) { //создана запись о человеке echo "добавлен человечек {$_POST['name']} {$_POST['surname']} - {$_POST['post']}.<br>\n" } else { //не прокатило. тут можно сделать запись в лог, и известить юзера о том, что запись не была добавлена. echo 'облом, чел!'; } селект - выборку списка работников сами осилите? =)
Попробовал, но что то ошибка выходит PHP: <?php class iPDO extends PDO { public function __construct($file = 'db_confige.ini') { if (!$settings = parse_ini_file($file, TRUE)) throw new exception('Unable to open ' . $file . '.'); try { $dns = $settings['database']['driver'] . ':host=' . $settings['database']['host'] . ((!empty($settings['database']['port'])) ? (';port=' . $settings['database']['port']) : '') . ';dbname=' . $settings['database']['schema']; parent::__construct($dns, $settings['database']['username'], $settings['database']['password']); } catch (Exception $e) { echo "Произошла ошибка при связи с базой данных<br>"; echo "There was an error while connecting to database<br>"; } } } //SHOW TABLES FROM map $QUERY = "INSERT INTO masters (`name`,`surname`,`post`) VALUES ('".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['surname'])."', '".mysql_real_escape_string($_POST['post'])."')"; if ($result = $db->query($QUERY)) { //создана запись о человеке echo "добавлен человечек {$_POST['name']} {$_POST['surname']} - {$_POST['post']}.<br>\n" } else { //не прокатило. тут можно сделать запись в лог, и известить юзера о том, что запись не была добавлена. echo 'облом, чел!'; ?> } И ошибка Parse error: parse error, expecting `','' or `';'' in C:\WebServer\public\Newjourn\file.php on line 34