Проблема с section в Smarty
Код:
$sql=mysql_query('select id_rass, email, firm, surname from rassilka');
if (mysql_num_rows($sql)>0)
{
$row=mysql_fetch_array($sql);
$row['id_rass']=stripslashes($row['id_rass']);
$row['email']=stripslashes($row['email']);
$row['firm']=stripslashes($row['firm']);
$row['surname']=stripslashes($row['surname']);
$smarty->assign('id',$row);
}
if (mysql_num_rows($sql)>0)
{
$row=mysql_fetch_array($sql);
$row['id_rass']=stripslashes($row['id_rass']);
$row['email']=stripslashes($row['email']);
$row['firm']=stripslashes($row['firm']);
$row['surname']=stripslashes($row['surname']);
$smarty->assign('id',$row);
}
а в шаблоне код такой
[HTML]
<table width="100%" border="1" cellspacing="0" cellpadding="0" bgcolor="ECEEF1" bordercolor="#FFFFFF">
<tr>
<td align="center"><b>Адрес почты</b></td>
<td align="center"><b>Фирма</b></td>
<td align="center"><b>Фамилия</b></td>
</tr>
{section name=i loop=$id}
<tr>
<td align="center">{$id.email}</td>
<td align="center">{$id.firm}</td>
<td align="center">{$id.surname}</td>
</tr>
{/section}
</table>
[/HTML]
Цикл выполняется и отсчитывает 9 значений как положено, но проблема в том что не передаются данные из массива $row.
Подскажите что с этим делать
Код:
while($row = mysql_fetch_array($sql)){
....
}
....
}
Код:
if (mysql_num_rows($sql)>0)
{
$row=mysql_fetch_array($sql);
$row['id_rass']=stripslashes($row['id_rass']);
$row['email']=stripslashes($row['email']);
$row['firm']=stripslashes($row['firm']);
$row['surname']=stripslashes($row['surname']);
$smarty->assign('id',$row);
}
{
$row=mysql_fetch_array($sql);
$row['id_rass']=stripslashes($row['id_rass']);
$row['email']=stripslashes($row['email']);
$row['firm']=stripslashes($row['firm']);
$row['surname']=stripslashes($row['surname']);
$smarty->assign('id',$row);
}
на
Код:
if (mysql_num_rows($sql)>0)
{
$row=mysql_fetch_array($sql);
$row = array_map('stripslashes', $row)
$smarty->assign('id',$row);
}
{
$row=mysql_fetch_array($sql);
$row = array_map('stripslashes', $row)
$smarty->assign('id',$row);
}
Можно уложить вообще в одну строчку, но тогда читаться будет хуже.
Во вторых, если что-то не передаётся делай сразу var_dump данным. В данном случае было бы более коректно следующее:
Код:
$rv = array();
while($row=mysql_fetch_array($sql)) {
$rv[] = array_map('stripslashes', $row);
}
$smarty->assign('id',$rv);
while($row=mysql_fetch_array($sql)) {
$rv[] = array_map('stripslashes', $row);
}
$smarty->assign('id',$rv);
PS Долго писал)))
Спасибо shaelf второй вариант помог))) будем работать дальше