Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с section в Smarty

17K
07 мая 2007 года
raul
22 / / 19.02.2007
Привет всем. вот такой код в php
Код:
$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);
}


а в шаблоне код такой
[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.
Подскажите что с этим делать
8
08 мая 2007 года
mfender
3.5K / / 15.06.2005
Как-то странно у тебя с результатами запроса... IMHO, правильно будет
 
Код:
while($row = mysql_fetch_array($sql)){
    ....
}
15
08 мая 2007 года
shaelf
2.7K / / 04.05.2005
Для начала замени
 
Код:
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 = 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);

PS Долго писал)))
17K
08 мая 2007 года
raul
22 / / 19.02.2007
Спасибо shaelf второй вариант помог))) будем работать дальше
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог