Как внутри echo или переменной выполнить цикл и ещё одно echo?

Ссылка скопирована
1 ответ

Уважаемые товарищи! Подскажите пожалуйста, как заставить это работать?) По задумке, мне нужна таблица, "кол-во людей" на "кол-во дней в месяце". Инклюды не показываю, от них смылса нет. Код весь работает кроме

'.for ($td=1; $td<=$daysinmonth; $td++){echo '<td>тут какое-то значение, в будующем должен быть код с операторами if и т.д.</td>';}.'

'.for ($td=1; $td<=$daysinmonth; $td++){echo '<td>тут какое-то значение, в будующем должен быть код с операторами if и т.д.</td>';}.'

Не понимаю, как засунуть цикл в цикл, echo в echo или под переменную. Извините за глупость, в php не очень силён. Пока получается как на скриншоте. А мне соответственно нужны ячейки с какими-то значениям на пересечении фио и числа месяца. P.S. То есть, хочу сделать подобие MS Excel только на PHP. Но знаний php мало.

Как внутри echo или переменной выполнить цикл и ещё одно echo?

<?php $daysinmonth = date('t');  $req = pdo()->prepare("SELECT `username` FROM `users`"); $req->execute(); $array = $req->fetchAll(PDO::FETCH_COLUMN);  $amountpeople = count($array); ?>    <table border="1">    <caption>Таблица учёта</caption>    <tr>    <th>№ п/п</th>    <th>ФИО</th> <?php 	for ($th=1; $th<=$daysinmonth; $th++){         echo '<th>'. $th .'</th>'; //отрисовывает первой строкой таблицы кол-во дней в месяце     } ?>    </tr> <?php 	for ($trtd=1; $trtd<=$amountpeople; $trtd++){ 		$table = ' 		<tr> 		<td>'. $trtd .'</td> //отрисовывает первым столбиком таблицы номер сотрудника в таблице бд 		<td>'. $array[0]++ .'</td> //отрисовывает вторым столбиком таблицы имя сотрудника в таблице бд 		'.for ($td=1; $td<=$daysinmonth; $td++){echo '<td>тут какое-то значение, в будующем должен быть код с операторами if и т.д.</td>';}.' //отрисосывает оставшиеся столбцы в зависимости от кол-ва дней в месяце 		</tr> 		'; 		echo ($table);     } ?>   </table>

<?php $daysinmonth = date('t'); $req = pdo()->prepare("SELECT `username` FROM `users`"); $req->execute(); $array = $req->fetchAll(PDO::FETCH_COLUMN); $amountpeople = count($array); ?> <table border="1"> <caption>Таблица учёта</caption> <tr> <th>№ п/п</th> <th>ФИО</th> <?php for ($th=1; $th<=$daysinmonth; $th++){ echo '<th>'. $th .'</th>'; //отрисовывает первой строкой таблицы кол-во дней в месяце } ?> </tr> <?php for ($trtd=1; $trtd<=$amountpeople; $trtd++){ $table = ' <tr> <td>'. $trtd .'</td> //отрисовывает первым столбиком таблицы номер сотрудника в таблице бд <td>'. $array[0]++ .'</td> //отрисовывает вторым столбиком таблицы имя сотрудника в таблице бд '.for ($td=1; $td<=$daysinmonth; $td++){echo '<td>тут какое-то значение, в будующем должен быть код с операторами if и т.д.</td>';}.' //отрисосывает оставшиеся столбцы в зависимости от кол-ва дней в месяце </tr> '; echo ($table); } ?> </table>

Дополнительно:

Ответы:

я понимаю что вы новичок но у пхп можно делать вставлять такие теги как <?php foreach(): ?> ... <?php endforeach;?>

&lt;?php foreach ($amountpeople as $humanNum=&gt;$human) :?&gt;     &lt;tr&gt;         &lt;td&gt;&lt;?=$humanNum?&gt;&lt;/td&gt; //отрисовывает первым столбиком таблицы номер сотрудника в таблице бд         &lt;td&gt; &lt;?=$human[0]++ ?&gt;&lt;/td&gt; //отрисовывает вторым столбиком таблицы имя сотрудника в таблице бд         &lt;?php foreach ($daysinmonth as $day): ?&gt;         пишите сюда ячейки в строке которые вам нужны         &lt;?php endforeach;?&gt;     &lt;/tr&gt; &lt;?php endforeach;?&gt;

&lt;?php foreach ($amountpeople as $humanNum=&gt;$human) :?&gt; &lt;tr&gt; &lt;td&gt;&lt;?=$humanNum?&gt;&lt;/td&gt; //отрисовывает первым столбиком таблицы номер сотрудника в таблице бд &lt;td&gt; &lt;?=$human[0]++ ?&gt;&lt;/td&gt; //отрисовывает вторым столбиком таблицы имя сотрудника в таблице бд &lt;?php foreach ($daysinmonth as $day): ?&gt; пишите сюда ячейки в строке которые вам нужны &lt;?php endforeach;?&gt; &lt;/tr&gt; &lt;?php endforeach;?&gt;

Не пользуйтесь конкатенацией в html пользуйтесь тегами, код станет читабильней

  • &lt;?php $amountpeople = count($array); ?&gt; .. &lt;?php foreach ($amountpeople as $humanNum=&gt;$human) :?&gt;     &lt;tr&gt;         &lt;td&gt;&lt;?=$humanNum?&gt;&lt;/td&gt;         &lt;td&gt; &lt;?=$human[0]++ ?&gt;&lt;/td&gt; // - что это такое?         &lt;?php foreach ($daysinmonth as $day): ?&gt;         пишите сюда ячейки в строке которые вам нужны // - мне нужно, что бы ячейки нарисовались сами, в зависимости от размера таблицы (5x31 или к примеру 21x28). А я мог записать значение уже в конктретную ячейку после.         &lt;?php endforeach;?&gt;     &lt;/tr&gt; &lt;?php endforeach;?&gt;

    &lt;?php $amountpeople = count($array); ?&gt; .. &lt;?php foreach ($amountpeople as $humanNum=&gt;$human) :?&gt; &lt;tr&gt; &lt;td&gt;&lt;?=$humanNum?&gt;&lt;/td&gt; &lt;td&gt; &lt;?=$human[0]++ ?&gt;&lt;/td&gt; // - что это такое? &lt;?php foreach ($daysinmonth as $day): ?&gt; пишите сюда ячейки в строке которые вам нужны // - мне нужно, что бы ячейки нарисовались сами, в зависимости от размера таблицы (5x31 или к примеру 21x28). А я мог записать значение уже в конктретную ячейку после. &lt;?php endforeach;?&gt; &lt;/tr&gt; &lt;?php endforeach;?&gt;

    Извиняюсь, вообще не понял, что вы предлагаете.

  • MZhack, я вашего кода тоже не понял но как то выкручиваюсь)
// Вы определитесь: $table = /* либо копите результат верстки в переменной table, а потом после обработки выводите все содержимое на строке N */  '     &lt;tr&gt;     &lt;td&gt;'. $trtd .'&lt;/td&gt; //отрисовывает первым столбиком таблицы номер сотрудника в таблице бд     &lt;td&gt;'. $array[0]++ .'&lt;/td&gt; //отрисовывает вторым столбиком таблицы имя сотрудника в таблице бд     '. // зачем тут перед for конкатенация ?  for ($td=1; $td&lt;=$daysinmonth; $td++){ // Либо сразу выводите результат через echo, не накапливая ничего для вывода контента echo '&lt;td&gt;тут какое-то значение, в будующем должен быть код с операторами if и т.д.&lt;/td&gt;';}.' //отрисосывает оставшиеся столбцы в зависимости от кол-ва дней в месяце     &lt;/tr&gt;';// если вы множите ячейки дней месяца, то наверное, строку таблицы нужно закрывать не в теле цикла?   /*строка N */  echo ($table); // вывод всего накопленного содержимого

// Вы определитесь: $table = /* либо копите результат верстки в переменной table, а потом после обработки выводите все содержимое на строке N */ ' &lt;tr&gt; &lt;td&gt;'. $trtd .'&lt;/td&gt; //отрисовывает первым столбиком таблицы номер сотрудника в таблице бд &lt;td&gt;'. $array[0]++ .'&lt;/td&gt; //отрисовывает вторым столбиком таблицы имя сотрудника в таблице бд '. // зачем тут перед for конкатенация ? for ($td=1; $td&lt;=$daysinmonth; $td++){ // Либо сразу выводите результат через echo, не накапливая ничего для вывода контента echo '&lt;td&gt;тут какое-то значение, в будующем должен быть код с операторами if и т.д.&lt;/td&gt;';}.' //отрисосывает оставшиеся столбцы в зависимости от кол-ва дней в месяце &lt;/tr&gt;';// если вы множите ячейки дней месяца, то наверное, строку таблицы нужно закрывать не в теле цикла? /*строка N */ echo ($table); // вывод всего накопленного содержимого

Оператор .= вам в помощь, чтобы добавить еще что-то к $table.

  • Обратив внимание на конкатенацию - затуп ушёл, наступило озарение :) Вот что бы нужно.
    for ($trth=1; $trth&lt;=$amountpeople; $trth++){ 		echo '&lt;tr&gt; 		&lt;td&gt;'. $trth .'&lt;/td&gt; 		&lt;td&gt;'. $array[0]++ .'&lt;/td&gt;'; 		for ($td=1; $td&lt;=$daysinmonth; $td++){echo '&lt;td&gt;&lt;/td&gt;';} 		echo '&lt;/tr&gt;';     }

    for ($trth=1; $trth&lt;=$amountpeople; $trth++){ echo '&lt;tr&gt; &lt;td&gt;'. $trth .'&lt;/td&gt; &lt;td&gt;'. $array[0]++ .'&lt;/td&gt;'; for ($td=1; $td&lt;=$daysinmonth; $td++){echo '&lt;td&gt;&lt;/td&gt;';} echo '&lt;/tr&gt;'; }

    Как внутри echo или переменной выполнить цикл и ещё одно echo?

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

    Как внутри echo или переменной выполнить цикл и ещё одно echo?

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Анна SEO Ответ

Для выполнения цикла и вывода значения с помощью echo внутри PHP кода, можно воспользоваться следующим синтаксисом:

&lt;?php
// Пример выполнения цикла и вывода значения с помощью echo
for ($i = 0; $i &lt; 5; $i++) {
    echo &quot;Значение переменной i равно: &quot; . $i . &quot;<br>";
}

&lt;?php // Пример выполнения цикла и вывода значения с помощью echo for ($i = 0; $i &lt; 5; $i++) { echo &quot;Значение переменной i равно: &quot; . $i . &quot;<br>"; }

В данном примере мы используем цикл for, который выполняется 5 раз (пока переменная $i меньше 5). Внутри цикла мы используем функцию echo для вывода значения переменной $i и текста "Значение переменной i равно: ".

Если необходимо выполнить ещё одно echo после завершения цикла, то можно просто добавить его за пределами цикла. Например:

&lt;?php
for ($i = 0; $i &lt; 5; $i++) {
    echo &quot;Значение переменной i равно: &quot; . $i . &quot;<br>";
}
 
// Ещё одно echo после завершения цикла
echo "Цикл завершен!";

&lt;?php for ($i = 0; $i &lt; 5; $i++) { echo &quot;Значение переменной i равно: &quot; . $i . &quot;<br>"; } // Ещё одно echo после завершения цикла echo "Цикл завершен!";

Таким образом, после завершения цикла мы выводим ещё одно сообщение с помощью функции echo. Важно помнить, что в PHP можно использовать неограниченное количество функций echo для вывода информации на экран.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно