Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Почему результат функции не выводится ?, почему он выводится над формой, а не в ней?
Strannik  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 8 лет, 3 месяца, 13 дней
Карма: 0




Добрый день.
Есть код:

function INFO($info,$status){
conn();
$sql="SELECT * FROM `table` WHERE `username` = '$status'";
$res=mysql_query($sql);
$info2=mysql_fetch_assoc($res);
echo $info2[$info];
}
$st='user';
echo '
<div class="MyAccSubMenu">
<table>
<tr>
<td class="FormLeft" width="25%">Имя пользователя</td>
<td width="35%">'
.INFO('name',$st).'</td>
</tr>
</tbody>
</table>
</div>'
;


Вопрос: Почему значение INFO('uname',$st) выводится над формой, а не в строке
<td width="35%">'.INFO('name',$st).'</td>
?
И как можно сделать, чтобы результат функции выводился нужном месте?



Спустя 3 часа, 6 минут, 10 секунд (13.07.2012 - 06:22) Pulse написал(а):
В функции INFO делай возврат значения через return, а не выводи через echo.
В общем попробуй так:
function INFO($info,$status){
conn();
$sql="SELECT * FROM `table` WHERE `username` = '$status'";
$res=mysql_query($sql);
$info2=mysql_fetch_assoc($res);
return $info2[$info];
}

Спустя 50 минут, 1 секунда (13.07.2012 - 07:12) Strannik написал(а):
Спасибо, помогло.

P.S.: а можешь объяснить смысл? return повторение роде бы или возврат к началу функции.

Спустя 11 минут, 41 секунда (13.07.2012 - 07:23) Pulse написал(а):
Цитата (Strannik @ 13.07.2012 - 07:12)
Спасибо, помогло.

P.S.: а можешь объяснить смысл? return повторение роде бы или возврат к началу функции.

return возвращает значение функции, потом ты это значение просто подставляешь в свой html код.

Спустя 4 минуты, 29 секунд (13.07.2012 - 07:28) Michael написал(а):
Цитата (Strannik)
Вопрос: Почему значение INFO('uname',$st) выводится над формой, а не в строке

Твоему первому echo
Цитата

echo '
<div class="MyAccSubMenu">

чтобы напечатать данные надо сначала сформировать строку.
И во время формировки, вызывается ф-ция, она печатает свою строку и т.к. нет return возвращает null. Для первого echo null преобразуется в '', строка сформирована, он ее печатает.

Спустя 8 часов, 34 минуты, 8 секунд (13.07.2012 - 16:02) Strannik написал(а):
Pulse
Michael
Ребята спасибо, что пояснили)
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса