gpt4 book ai didi

php - 如何使用 smarty 正确显示数组中的数据?

转载 作者:行者123 更新时间:2023-11-28 19:01:14 25 4
gpt4 key购买 nike

当我的咨询只返回一行时,没关系...... enter image description here

但是当返回多行时我的表崩溃了 enter image description here

输出(第二张图片和错误)

<table class="table-filtro">
<thead>
<tr>
<th class="nome-quarto">TIpo</th>
<th>N° Quarto</th>
<th>Label</th>
<th class="th-periodo" title="14 th April 2011">14</th>
<!--<th class="th-periodo">14 de April de 2011</th>-->
<th class="th-periodo" title="15 th April 2011">15</th>
<!--<th class="th-periodo">15 de April de 2011</th>-->
<th class="th-periodo" title="16 th April 2011">16</th>
<!--<th class="th-periodo">16 de April de 2011</th>-->
<th class="th-periodo" title="17 th April 2011">17</th>
<!--<th class="th-periodo">17 de April de 2011</th>-->
<th class="th-periodo" title="18 th April 2011">18</th>
<!--<th class="th-periodo">18 de April de 2011</th>-->
<th class="th-periodo" title="19 th April 2011">19</th>
<!--<th class="th-periodo">19 de April de 2011</th>-->
<th class="th-periodo" title="20 th April 2011">20</th>
<!--<th class="th-periodo">20 de April de 2011</th>-->
<th class="th-periodo" title="21 th April 2011">21</th>
<!--<th class="th-periodo">21 de April de 2011</th>-->
</tr>
</thead>
<tbody>
<tr>
<td class="nome-quarto">Standard</td>
<td>01</td>
<td>Quarto padrão</td>

<td><img title="01 -- 14 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 14 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 14 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 15 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 15 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 15 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 16 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 16 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 16 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 17 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 17 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 17 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 18 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 18 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 18 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 19 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 19 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 19 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 20 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 20 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 20 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 21 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 21 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 21 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>

</tr>
<tr>
<td class="nome-quarto">Standard</td>
<td>05</td>
<td>Deluxe </td>

<td><img title="01 -- 14 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 14 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 14 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 15 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 15 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 15 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 16 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 16 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 16 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 17 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 17 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 17 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 18 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 18 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 18 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 19 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 19 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 19 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 20 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 20 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 20 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 21 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 21 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 21 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>

</tr>
<tr>
<td class="nome-quarto">Standard</td>
<td>80</td>
<td>Quarto novo </td>

<td><img title="01 -- 14 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 14 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 14 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 15 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 15 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 15 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 16 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 16 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 16 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 17 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 17 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 17 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 18 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 18 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 18 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 19 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 19 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 19 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 20 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 20 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 20 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>
<td><img title="01 -- 21 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="05 -- 21 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/verde.jpg"></td>
<td><img title="80 -- 21 de April de 2011" src="http://casasbrancas.com.br/reservas/images/cubos/amarelo.jpg"></td>

</tr>
</tbody>
</table>

模板html代码

                      <table class="table-filtro">
<thead>
<tr>
<th class="nome-quarto">TIpo</th>
<th>N° Quarto</th>
<th>Label</th>
{foreach from=$numeros item="estoque"}
<th class="th-periodo" title='{$estoque.reserva_checkin|date_format:"%e th %B %Y"}'>{$estoque.reserva_checkin|date_format:"%e"}</th>
<!--<th class="th-periodo">{$estoque.reserva_checkin|date_format:"%e de %B de %Y"}</th>-->
{/foreach}
</tr>
</thead>
<tbody>
{foreach from=$listar item="estoque"}
<tr>
<td class="nome-quarto">{$estoque.tipo_nome}</td>
<td>{if $estoque.quarto_numero|count_characters eq '1'}0{$estoque.quarto_numero}{else}{$estoque.quarto_numero}{/if}</td>
<td>{$estoque.quarto_descricao}</td>

{foreach from=$datas item="estoque"}
<td><img title="{if $estoque.quarto_numero|count_characters eq '1'}0{$estoque.quarto_numero}{else}{$estoque.quarto_numero}{/if} -- {$estoque.reserva_checkin|date_format:"%e de %B de %Y"}" src="http://{$smarty.server.SERVER_NAME}/reservas/images/cubos/{if $estoque.reserva_status eq '3'}vermelho{elseif $estoque.reserva_status eq '2'}amarelo{else}verde{/if}.jpg" /></td>
{/foreach}

</tr>
{/foreach}
</tbody>
</table>

PHP 函数

    function datas($data, $dias, $tipo) {
$inicio = strtotime($data);
$edia = date('d', $inicio);
$emes = date('m', $inicio);
$eano = date('Y', $inicio);
$db = new DBConfig();
$db->config();
$db->conn();

$smarty_array = array();
while($i <= $dias) {
$today = strtotime(date('Y-m-d',mktime(0,0,0,date($emes),date($edia)+$i,date($eano))));
$query = mysql_query("SELECT * FROM quartos AS quartos
INNER JOIN tipos AS tipos
LEFT JOIN reservas AS reservas
ON quartos.quarto_tipo = tipos.tipo_id
AND quartos.quarto_numero = reservas.reserva_quarto_id
AND ".$today." BETWEEN reservas.reserva_checkin AND reservas.reserva_checkout
WHERE quartos.quarto_tipo = '".$tipo."'
GROUP BY quartos.quarto_id HAVING Count(*) >= 1") or die(mysql_error());
while($row = mysql_fetch_assoc($query)){
if (empty($row["reserva_status"])) {
$row["reserva_status"] = "0";
}
$row["reserva_checkin"] = $today;
$smarty_array[] = $row;
}
$i++;
}
$db->close();
return $smarty_array;
}

数组

Smarty_Variable Object (3)
->value = Array (24)
0 => Array (15)
quarto_id => "12"
quarto_tipo => "1"
quarto_numero => "1"
quarto_descricao => "Quarto padrão"
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => "4"
reserva_quarto_id => "1"
reserva_valor => "1600"
reserva_status => "1"
reserva_cliente_id => "62"
reserva_checkin => 1302757200
reserva_checkout => "1303534800"
reserva_obs => "Aguardando pagamento"
1 => Array (15)
quarto_id => "15"
quarto_tipo => "1"
quarto_numero => "5"
quarto_descricao => "Deluxe "
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => null
reserva_quarto_id => null
reserva_valor => null
reserva_status => "0"
reserva_cliente_id => null
reserva_checkin => 1302757200
reserva_checkout => null
reserva_obs => null
2 => Array (15)
quarto_id => "26"
quarto_tipo => "1"
quarto_numero => "80"
quarto_descricao => "Quarto novo "
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => "3"
reserva_quarto_id => "80"
reserva_valor => "3000"
reserva_status => "2"
reserva_cliente_id => "58"
reserva_checkin => 1302757200
reserva_checkout => "1305090000"
reserva_obs => "Aguardando pagamento"
3 => Array (15)
quarto_id => "12"
quarto_tipo => "1"
quarto_numero => "1"
quarto_descricao => "Quarto padrão"
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => "4"
reserva_quarto_id => "1"
reserva_valor => "1600"
reserva_status => "1"
reserva_cliente_id => "62"
reserva_checkin => 1302843600
reserva_checkout => "1303534800"
reserva_obs => "Aguardando pagamento"
4 => Array (15)
quarto_id => "15"
quarto_tipo => "1"
quarto_numero => "5"
quarto_descricao => "Deluxe "
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => null
reserva_quarto_id => null
reserva_valor => null
reserva_status => "0"
reserva_cliente_id => null
reserva_checkin => 1302843600
reserva_checkout => null
reserva_obs => null
5 => Array (15)
quarto_id => "26"
quarto_tipo => "1"
quarto_numero => "80"
quarto_descricao => "Quarto novo "
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => "3"
reserva_quarto_id => "80"
reserva_valor => "3000"
reserva_status => "2"
reserva_cliente_id => "58"
reserva_checkin => 1302843600
reserva_checkout => "1305090000"
reserva_obs => "Aguardando pagamento"
6 => Array (15)
quarto_id => "12"
quarto_tipo => "1"
quarto_numero => "1"
quarto_descricao => "Quarto padrão"
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => "4"
reserva_quarto_id => "1"
reserva_valor => "1600"
reserva_status => "1"
reserva_cliente_id => "62"
reserva_checkin => 1302930000
reserva_checkout => "1303534800"
reserva_obs => "Aguardando pagamento"
7 => Array (15)
quarto_id => "15"
quarto_tipo => "1"
quarto_numero => "5"
quarto_descricao => "Deluxe "
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => null
reserva_quarto_id => null
reserva_valor => null
reserva_status => "0"
reserva_cliente_id => null
reserva_checkin => 1302930000
reserva_checkout => null
reserva_obs => null
8 => Array (15)
quarto_id => "26"
quarto_tipo => "1"
quarto_numero => "80"
quarto_descricao => "Quarto novo "
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => "3"
reserva_quarto_id => "80"
reserva_valor => "3000"
reserva_status => "2"
reserva_cliente_id => "58"
reserva_checkin => 1302930000
reserva_checkout => "1305090000"
reserva_obs => "Aguardando pagamento"
9 => Array (15)
quarto_id => "12"
quarto_tipo => "1"
quarto_numero => "1"
quarto_descricao => "Quarto padrão"
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => "4"
reserva_quarto_id => "1"
reserva_valor => "1600"
reserva_status => "1"
reserva_cliente_id => "62"
reserva_checkin => 1303016400
reserva_checkout => "1303534800"
reserva_obs => "Aguardando pagamento"
10 => Array (15)
quarto_id => "15"
quarto_tipo => "1"
quarto_numero => "5"
quarto_descricao => "Deluxe "
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => null
reserva_quarto_id => null
reserva_valor => null
reserva_status => "0"
reserva_cliente_id => null
reserva_checkin => 1303016400
reserva_checkout => null
reserva_obs => null
11 => Array (15)
quarto_id => "26"
quarto_tipo => "1"
quarto_numero => "80"
quarto_descricao => "Quarto novo "
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => "3"
reserva_quarto_id => "80"
reserva_valor => "3000"
reserva_status => "2"
reserva_cliente_id => "58"
reserva_checkin => 1303016400
reserva_checkout => "1305090000"
reserva_obs => "Aguardando pagamento"
12 => Array (15)
quarto_id => "12"
quarto_tipo => "1"
quarto_numero => "1"
quarto_descricao => "Quarto padrão"
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => "4"
reserva_quarto_id => "1"
reserva_valor => "1600"
reserva_status => "1"
reserva_cliente_id => "62"
reserva_checkin => 1303102800
reserva_checkout => "1303534800"
reserva_obs => "Aguardando pagamento"
13 => Array (15)
quarto_id => "15"
quarto_tipo => "1"
quarto_numero => "5"
quarto_descricao => "Deluxe "
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => null
reserva_quarto_id => null
reserva_valor => null
reserva_status => "0"
reserva_cliente_id => null
reserva_checkin => 1303102800
reserva_checkout => null
reserva_obs => null
14 => Array (15)
quarto_id => "26"
quarto_tipo => "1"
quarto_numero => "80"
quarto_descricao => "Quarto novo "
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => "3"
reserva_quarto_id => "80"
reserva_valor => "3000"
reserva_status => "2"
reserva_cliente_id => "58"
reserva_checkin => 1303102800
reserva_checkout => "1305090000"
reserva_obs => "Aguardando pagamento"
15 => Array (15)
quarto_id => "12"
quarto_tipo => "1"
quarto_numero => "1"
quarto_descricao => "Quarto padrão"
tipo_id => "1"
tipo_nome => "Standard"
tipo_foto => "03f9efa3b682512c74a9275656622b03.jpg"
reserva_id => "4"
reserva_quarto_id => "1"
reserva_valor => "1600"
reserva_status => "1"
reserva_cliente_id => "62"
reserva_checkin => 1303189200
reserva_checkout => "1303534800"
reserva_obs => "Aguardando pagamento"...

最佳答案

在嵌套的 foreach 中,您使用了两次 item="estoque"

对于行:

{foreach from=$datas item="estoque"}

您需要为 item 使用不同的名称,以避免循环覆盖彼此的值。

关于php - 如何使用 smarty 正确显示数组中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5665188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com