С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155

Сложная табличка с датой и булевским полем

26.01.2016, 19:09. Показов 1259. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, помогите сделать табличку с полями: дата(дата), действие(техт), выполнение(булевское(выполнено, не выполнено))
PHP
1
2
3
4
5
6
7
mysqli_query($mysqli,"CREATE TABLE IF NOT EXISTS `pamytka_$id` (
                      `id` int(11) NOT NULL AUTO_INCREMENT, 
                      `data` DATE NOT NULL,
                      `deistvie` TEXT NOT NULL,
                      `vipolnenie` BOOLEAN NOT NULL,                      
                      PRIMARY KEY (`id`)
                    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
при выводе таблицы в поле "vipolnenie" должно выводится либо "выполнено", либо " невыполнено". Подскажите как это реализовать?
Миниатюры
Сложная табличка с датой и булевским полем  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.01.2016, 19:09
Ответы с готовыми решениями:

Select case с булевским операндом And
Здравствуйте. Вопрос из разряда "а можно ли так сделать"? Я хочу вместо перечисления большого количества If Then сделать Select...

не разобрался с выпадающим полем и с обычным полем
В БД есть 3 поля со списком которые функционируют в зависимости от выбранного значения. Поля со списком работают через связку Ключей-Код. ...

Как сравнить правильно в MySQL запросе поле с датой с текущей датой?
Всем привет! Как сравнить правильно в mysql запросе поле с датой с текущей датой? Мне просто нужно, чтобы скрипт перезаписывал значение...

11
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
26.01.2016, 19:28
Цитата Сообщение от nikotan Посмотреть сообщение
помогите сделать табличку
А что не так с кодом, который вы показали? И зачем генерить таблицы с названиями pamytka_x?
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
26.01.2016, 20:03  [ТС]
с кодом, даже не знаю, не пробовал. я думал там надо как то дописать в булевское поле (выполненно, невыполненно) , а если правильно, то как сделать чтоб в таблице на сайте выводилось "выполненно или невыполненно"? как на картинке

Добавлено через 1 минуту
а генерация: много пользователей, у каждого своя таблица но все похожи структурой(10 пользователей-10 таблиц)

Добавлено через 1 минуту
при регистрации создаются у каждого пользователя около 10 таблиц и все присваиваются к пользователю по id.

Добавлено через 8 минут
может поле со списком там показывать?

Добавлено через 19 минут
о есть выход.. это поле текстовое сделать, а вот при вводе данных брать из поля со списком
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<form action="" method="POST" name='add'>   
        <input type="text" name="data" placeholder="дата" width="110px">
        <input type="text" name="deistvie" width="325" placeholder="действие">
        а вот здесь как то select  прописать и vipolnino присвоить....................................................     
        <button name='submit_add' style="width:70px;">Добавить</button>              
    </form>
if (isset($_POST['submit_add'])) {
    $data= $_POST['data'];
    $deistvie= $_POST['deistvie'];
    $vipolnino= $_POST['vipolnino'];
   
    mysqli_query ($mysqli, "INSERT INTO `inventarizacia_$row2`(`data`, `deistvie`, `vipolnenie`) VALUES ('".$data."','".$deistvie."','".$vipolnino."')");
    echo "<script>document.location.replace('tableorganaizer.php');</script>";
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
26.01.2016, 20:06
Цитата Сообщение от nikotan Посмотреть сообщение
не пробовал
Так попробуйте. Это гораздо быстрей, чем создавать тему на форуме.

Цитата Сообщение от nikotan Посмотреть сообщение
много пользователей, у каждого своя таблица
Зачем? Почему нельзя всех в одну таблицу?

Цитата Сообщение от nikotan Посмотреть сообщение
как сделать чтоб в таблице на сайте выводилось "выполненно или невыполненно"?
PHP
1
echo vipolnenie ? 'Выполнено' : 'Не выполнено';
1
162 / 161 / 66
Регистрация: 28.06.2015
Сообщений: 576
26.01.2016, 20:38
Цитата Сообщение от nikotan Посмотреть сообщение
при регистрации создаются у каждого пользователя около 10 таблиц
серьезно?
А если у вас будет 1000 пользователей? А если 100 000? 1 000 000 таблиц?
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
26.01.2016, 21:02  [ТС]
а можно
PHP
1
echo vipolnenie ? 'Выполнено' : 'Не выполнено';
поподробней?
как это сделать?
а каждый пользователь может редактировать только свои таблицы, поэтому у каждого свои.

Добавлено через 3 минуты
как select применить? я искал варианты в инете, но что то не могу ничего примерного найти.
коды выше выложены, а подставьте select и echo куда нужно.

Добавлено через 1 минуту
вот вывод таблицы
PHP
1
2
3
4
5
6
7
8
9
10
11
12
while ($row = mysqli_fetch_assoc($sql)) {
?>
 
<tr>
    <td><?php echo $row['data'];?></td>
    <td style="word-wrap: break-word"><?php echo $row['deistvie'];?></td>
    <td><?php echo $row['vipolnenie'];?></td>   
    <td><a href='?del=<?php echo $row['id'];?>' onclick="return destroy();">Удалить</a></td>
    <td><a href='?edit=<?php echo $row['id'];?>'>Изменить</a></td>
<?php
}
?>
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
26.01.2016, 21:26
Цитата Сообщение от nikotan Посмотреть сообщение
поподробней?
как это сделать?
Упс, $ у переменной забыл, ну да ладно.
Вы храните в БД значение 0 или 1. И хотите, чтобы оно превратилось в Выполнен - Не выполнен. Я вам показал, как. В переменной должно лежать 0 или 1.

Цитата Сообщение от nikotan Посмотреть сообщение
каждый пользователь может редактировать только свои таблицы
Решение хуже не придумаешь. Добавьте колонку с идентификатором юзера и пусть могут смотреть/редактировать только те, у которых идентификатор совпадает с ихним.
Т.е. если у юзера id=5, то из таблицы вытаскиваете все данные с id=5, другие данные редактировать и смотреть запрещаете.

Цитата Сообщение от nikotan Посмотреть сообщение
вот вывод таблицы
Ну вот на 7 строчке и пишете по моему примеру:
PHP/HTML
1
<td><?php echo $row['vipolnenie'] ? 'Выполнен' : 'Не выполнен'; ?></td>
1
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
26.01.2016, 23:05  [ТС]
спасибо, попробую счас! а вот с таблицами.. пока уж пусть хоть так будет. уже второй месяц пошёл, а я сайт ещё не сделал. (дипломную пишу)

Добавлено через 1 час 30 минут
не могу понять почему при вводе "1" в поле "выполняемость" всегда "0" получается?
создание таблички
PHP
1
2
3
4
5
6
7
mysqli_query($mysqli,"CREATE TABLE IF NOT EXISTS `pamytka_$id` (
                      `id` INT(11) NOT NULL AUTO_INCREMENT, 
                      `data` DATE NOT NULL,
                      `deistvie` TEXT NOT NULL,
                      `vipolnenie` INT(3) NOT NULL,                      
                      PRIMARY KEY (`id`)
                    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
ввод данных
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<table >
<br><tr><!--строка для добавления данных в базу-->
    <form action="" method="POST" name='add'>   
        <input type="text" name="data" placeholder="дата" style="width:150px;">
        <input type="text" name="deistvie" style="width:60px;" placeholder="действие">
        <input type="text" name="vypolnenie" style="width:60px;" placeholder="выполняемость">              
        <button class="btn btn-1 btn-1a" name='submit_add'>Добавить</button>              
    </form>
</tr>
</table>
 </center> 
 
<?php // ввод данных в базу из строки добавления
if (isset($_POST['submit_add'])) {
    $data = $_POST['data'];
    $deistvie = $_POST['deistvie'];
    $vypolnenie = $_POST['vipolnenie'];     
    mysqli_query ($mysqli, "INSERT INTO `pamytka_$row2`(`data`, `deistvie`, `vipolnenie`) VALUES ('".$data."','".$deistvie."','".$vypolnenie."')");
    echo "<script>document.location.replace('pamytka.php');</script>";
}
вывод на экран(и всегда получается "не выполнен")
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<table border="1" width="100%" cellspacing="0" cellpadding="0" >
<tr>
    <td style="width:150px;">Дата</td>
    <td style="width:40px;">Действие</td>
    <td width="40px">Выполнение</td>    
    <td width="40px">Удалить</td>
    <td width="40px">Изменить</td>
</tr>
<?php
while ($row = mysqli_fetch_assoc($sql)) {
    ?>
<tr>
    <td><?php echo $row['data'];?></td>
    <td style="word-wrap: break-word"><?php echo $row['deistvie'];?></td>
    <td><?php echo $row['vipolnenie'] ? 'Выполнен' : 'Не выполнен'; ?></td>
    <td><a href='?del=<?php echo $row['id'];?>' onclick="return destroy();">Удалить</a></td>
    <td><a href='?edit=<?php echo $row['id'];?>'>Изменить</a></td>
 
<?php
}
?>
</tr>
</table>
помогите а? СПАСИБО!!!

Добавлено через 5 минут
ввожу "1" а в базу "0" идёт. (в phpadmin смотрел)
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
26.01.2016, 23:14
Лучший ответ Сообщение было отмечено nikotan как решение

Решение

Цитата Сообщение от nikotan Посмотреть сообщение
$vypolnenie = $_POST['vipolnenie'];
Сравните названия полей (и с name в input'е). И научитесь называть их адекватно, иначе подобные проблемы будут возникать постоянно.
1
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
26.01.2016, 23:23  [ТС]
Спасибо, работает
у меня два вопроса, первое плохо что вводить надо сначало год, месяц потом день, надо наоборот
и второй редактировать, да и вводить хотелось бы либо выполненно, либо невыполненно. а не 0 и 1. как то список можно туда пристроить?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
26.01.2016, 23:51
Цитата Сообщение от nikotan Посмотреть сообщение
что вводить надо сначало год, месяц потом день, надо наоборот
Без разницы, всё равно на PHP можете привести в нужному формату. Главное, чтобы его не нарушали.
Цитата Сообщение от nikotan Посмотреть сообщение
как то список можно туда пристроить?
Конечно.

PHP/HTML
1
2
3
4
<select>
<option value="0">Не выполнен</option>
<option value="1" <?= $row['vipolnenie'] ? 'selected' : null; ?>>Выполнен</option>
</select>
По-умолчанию покажет 0, но если в БД 1, то выведет 1.
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
27.01.2016, 23:51  [ТС]
DJODAN, премного благодарен!
немного осталось, уже 5 раз хотел проблемы написать про селект, никак не работало, но нашёл ошибки .
Скоро на платный хостинг отправлю, потом уже по администрированию и допуску к таблицам будут вопросы.
Спасибо всем кто помогал!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.01.2016, 23:51
Помогаю со студенческими работами здесь

SQL: найти разницу между текущей датой и датой заключения договора
Здравствуйте! Помогите, пожалуйста, с запросом SQL. Есть база данных в Access. В С++ Builder 6 подключены компоненты ADOConnection,...

Как заполнить промежуток между начальной датой и конечной датой в пустой таблице?
Возможно ли в MS Accsee в пустой таблице заполнить автоматически промежуток(период) между начальной и конечной датами и как это...

Разность между текущей датой и датой последней покупки
Помогите пожалуйста. Как можно посчитать давность покупки?как это запросом написать? (это вообще разность между текущей датой и датой...

Как получить разницу в днях между текущей датой и датой записанной в прогу mssql базы во время выборки?
Как получить разницу в днях между текущей датой и датой записанной в пролу mssql базы во время выборки. т.е что то типо select * from...

Выяснить, является ли данное множество кольцом (но не полем) и является ли полем, относительно операций сложения и умн
Нужно выяснить, является ли данное множество кольцом ( но не полем ) и является ли полем, относительно операций сложения и умножения


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru