Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Циклы для вывода в таблицу

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Lora
Отправлено: 11 Мая, 2020 - 20:30:06
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Май 2020  


Помог: 0 раз(а)




Всем привет. Пытаюсь написать код для вывода html таблицы расписания приёмных часов. То есть,хочу записаться на 12-00.Выводится таблица, в которой можно посмотреть какие часы заняты,а какие свободны. Для примера. С базы получаю массив,для двух дней. Перебираю.
PHP:
скопировать код в буфер обмена
  1. Array ( [0] => Array ( [id] => 56  [date] => 2020-05-11 [time] => Array ( [0] => 2:13:30 [1] => 1:14:30 ) )
  2. [1] => Array ( [id] => 58 [date] => 2020-05-12 [time] => Array ( [0] => 1:12:30 ) )

Приготовил массивы для таблицы html.
$list - список приёмных часов. Будет первый столбец в таблице.
$w_weeks - дни недели.
Рисую таблицу.
CODE (html):
скопировать код в буфер обмена
  1.         <table class="table table-bordered" >
  2.                 <tr>
  3.                         <td>Часы/Дни</td>
  4.                         <?php $j = 0; while($j<7){ ?>
  5.                                 <td ><?php echo $w_weeks[$j] ?></td>
  6.                         <?php $j++;} ?>
  7.                 </tr>
  8.                 <?php $i = 0; while($i<count($list)){ ?>
  9.                         <tr>                           
  10.                                 <td><?php echo $list[$i];?></td>
  11.                         </tr>
  12.                 <?php $i++;}?>                 
  13.         </table>

Теперь мне надо как то составить условие, что такое то время занято,такое то свободно. То есть связать время из базы со временем из таблицы. Весь мозг сломал уже.
Время из базы состоит из id пользователя,первая цифра и времени,следующие две. В процессе перебора оставляю только время
$pre_items - массив из базы
PHP:
скопировать код в буфер обмена
  1.                         foreach($pre_items as $pre){
  2.                          $pre['time'] = explode(',',$pre['time']);
  3.                          $date[] = $pre['date'];
  4.                          $array[] = $pre;
  5.                         }
  6.                                        
  7.                         foreach($array as $lists){
  8.                         $times = $lists['time'];
  9.                         foreach($times as $tim){
  10.                         $list_time = explode(':',$tim);
  11.                         $time[] = $list_time[1].':'.$list_time[2];
  12.                                 }                              
  13.                         }

(Отредактировано автором: 11 Мая, 2020 - 20:39:31)

 
 Top
Vladimir Kheifets
Отправлено: 13 Мая, 2020 - 12:51:24
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Lora пишет:
Всем привет. Пытаюсь написать код для вывода html таблицы расписания приёмных часов. То есть,хочу записаться на 12-00.Выводится таблица, в которой можно посмотреть какие часы заняты,а какие свободны. Для примера. С базы получаю массив,для двух дней. Перебираю.
PHP:
скопировать код в буфер обмена
  1. Array ( [0] => Array ( [id] => 56  [date] => 2020-05-11 [time] => Array ( [0] => 2:13:30 [1] => 1:14:30 ) )
  2. [1] => Array ( [id] => 58 [date] => 2020-05-12 [time] => Array ( [0] => 1:12:30 ) )

Приготовил массивы для таблицы html.
$list - список приёмных часов. Будет первый столбец в таблице.
$w_weeks - дни недели.
Рисую таблицу.
CODE (html):
скопировать код в буфер обмена
  1.         <table class="table table-bordered" >
  2.                 <tr>
  3.                         <td>Часы/Дни</td>
  4.                         <?php $j = 0; while($j<7){ ?>
  5.                                 <td ><?php echo $w_weeks[$j] ?></td>
  6.                         <?php $j++;} ?>
  7.                 </tr>
  8.                 <?php $i = 0; while($i<count($list)){ ?>
  9.                         <tr>                           
  10.                                 <td><?php echo $list[$i];?></td>
  11.                         </tr>
  12.                 <?php $i++;}?>                 
  13.         </table>

Теперь мне надо как то составить условие, что такое то время занято,такое то свободно. То есть связать время из базы со временем из таблицы. Весь мозг сломал уже.
Время из базы состоит из id пользователя,первая цифра и времени,следующие две. В процессе перебора оставляю только время
$pre_items - массив из базы
PHP:
скопировать код в буфер обмена
  1.                         foreach($pre_items as $pre){
  2.                          $pre['time'] = explode(',',$pre['time']);
  3.                          $date[] = $pre['date'];
  4.                          $array[] = $pre;
  5.                         }
  6.                                        
  7.                         foreach($array as $lists){
  8.                         $times = $lists['time'];
  9.                         foreach($times as $tim){
  10.                         $list_time = explode(':',$tim);
  11.                         $time[] = $list_time[1].':'.$list_time[2];
  12.                                 }                              
  13.                         }

Добрый день!
Советую Вам в начале сформализовать задачу, а затем думать о том как её реализовать.
Например:
Важно продумать авторизацию перед записью на прием.
Как минимум необходимо получить имя, номер документа(например, карты мед. страховки),
мэйл и отправить на него код доступа.
Получив доступ, посититель может ввести, дату и время, и ему, после проверки, может выдаваться сообщение:
"Ок записан", или "занято" и "рисуется" календарь на ближайшей от выбранной даты неделю или месяц.
Для этого необходимо иметь информацию о рассписании работы (по дням недели и часам)
и информацию об уже зарегистрированных поситителях.
Нужно знать максиимальную продолжительность обслуживания одного поситителя
и допустимое время ожидания в месте приёма.
Посмотрите запись на приём здесь:
https://q[dot]midpass[dot]ru/ru/account/[dot][dot][dot]oviderCode=49305
Удачи!

(Отредактировано автором: 13 Мая, 2020 - 15:36:46)

 
 Top
Thomas_Bergersen
Отправлено: 28 Мая, 2022 - 11:26:19
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2022  
Откуда: Nur-Sultan


Помог: 0 раз(а)




<?php

if (isset($_POST['name']) && isset($_POST['surename']) && isset($_POST['age']) && isset($_POST['nationality'])&& isset($_POST['university'])&& isset($_POST['kurs'])&& isset($_POST['group'])&&(isset($_POST['birinshi_san']) && isset($_POST['ekinshi_san']))&&(isset($_POST['email']) && isset($_POST['password']))) {
$name = $_POST['name'];
$surename = $_POST['surename'];
$age = $_POST['age'];
$nationality = $_POST['nationality'];
$university = $_POST['university'];
$kurs = $_POST['kurs'];
$group = $_POST['group'];
$plus = (int)$_POST['birinshi_san'] + (int)$_POST['ekinshi_san'];
$minus = (int)$_POST['birinshi_san'] - (int)$_POST['ekinshi_san'];
$proiz = (int)$_POST['birinshi_san'] * (int)$_POST['ekinshi_san'];
$div = (int)$_POST['birinshi_san'] / (int)$_POST['ekinshi_san'];
$email = $_POST['email'];
$password = $_POST['password'];
$tel = $_POST['tel'];
$name = $_POST['name'];
$dob = $_POST['dob'];
$age = floor( ( time() - strtotime($dob) ) / (60 * 60 * 24 * 365.25) );
require 'natizhe.php';

}
 
 Top
Vladimir Kheifets
Отправлено: 29 Мая, 2022 - 10:42:27
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Thomas_Bergersen пишет:
Спойлер (Отобразить)


Добрый день!
Код, который Вы показали совсем не по теме "Вывод html таблицы расписания приёмных часов".
Однако, раз уж Вы его опубликовали, обратите внимание на следущее:
1. Нет необходимости применять функцию isset ко всем POST переменным.
2. Если необходимо применить (int) к $_POST['birinshi_san'] и $_POST['ekinshi_san'],
то лучше было бы вычислить значения integer один раз, а потом их использовать в расчетах $plus, $minus, $proiz, $div
3. Для вычисления интервала между двумя датами, в вашем случае возраста $age, лучше применять методы diff и format класса DateTime
4. Ваш код можно записать так:
Спойлер (Отобразить)
Удачи!

(Отредактировано автором: 29 Мая, 2022 - 10:47:56)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB