[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как правильно возвращать результат ?
Oggy
в хтмл файле пишу так:
<td colspan="3"><?php $_model->show_lang($name_lang);?></td>
<td colspan="3"><?php $_model->show_lang($var); ?></td>


а в пхп файле

while($row=mysql_fetch_array($result))
{
$id=$row['id'];
$name_lang=$row['name_lang'];
if ($row['statys_lang']=='1') $var='on';
if ($row['statys_lang']=='0') $var='off';

return $name_lang;//неправильно
return $var;

}



Спустя 5 минут, 36 секунд (13.02.2012 - 21:43) TranceIT написал(а):
Ну давайте начнем с того, что вы покажите всю функцию и скажете что надо вернуть.

Цитата (Oggy @ 13.02.2012 - 18:37)
return $name_lang;//неправильно

Почему не правильно?

Спустя 3 минуты, 48 секунд (13.02.2012 - 21:47) Oggy написал(а):
Цитата (TranceIT @ 13.02.2012 - 18:43)
Ну давайте начнем с того, что вы покажите всю функцию и скажете что надо вернуть.

Цитата (Oggy @ 13.02.2012 - 18:37)
return $name_lang;//неправильно

Почему не правильно?

<table width="100%" border="1" cellspacing="0" cellpadding="4">
<tr align="center">
<td colspan="3">Имя языка</td>
<td colspan="3">Статус</td>
<td colspan="3">действия</td>
</tr>
<tr align="center">

<td colspan="3"><?php $_model->show_lang($name_lang);?></td>
<td colspan="3"><?php $_model->show_lang($var); ?></td>
<td colspan="3">тут форма удаления</td>
</tr>
</table>;
// оно пишет что незнает что такое $name_lang и $var


public function show_lang($name_lang,$var)
{
if(isset($_POST['add_lang']))
{
$this->admin_connect_bd();
$result=mysql_query("select * from `lang`");
if ($result)
{

while($row=mysql_fetch_array($result))
{
$id=$row['id'];
$name_lang=$row['name_lang'];
if ($row['statys_lang']=='1') $var='on';
if ($row['statys_lang']=='0') $var='off';

return $name_lang;
return $var;

}


}
}
}


Спустя 3 минуты, 55 секунд (13.02.2012 - 21:51) TranceIT написал(а):
В функции вы определяете 2 параметра
public function show_lang($name_lang,$var)


А передаете 2 раза по одному.

<td colspan="3"><?php $_model->show_lang($name_lang);?></td>
<
td colspan="3"><?php $_model->show_lang($var); ?></td>


Естественно интерпретатор каждый раз не видит какой-то из параметров, который определен в функции, но не передается.
В первом случае это $var, во втором $name_lang

Либо сделайте одну общую функцию, либо по отдельной функции на каждую операцию.

Да и еще. Когда интерпретатор видит return, он прекращает работу функции и возвращает полученный результат. Т.е. найдя в теле return $name_lang; функция завершит работу не дойдя до return $var;

Спустя 3 минуты, 41 секунда (13.02.2012 - 21:54) Oggy написал(а):
Цитата (TranceIT @ 13.02.2012 - 18:51)
В функции вы определяете 2 параметра
public function show_lang($name_lang,$var)


А передаете 2 раза по одному.

<td colspan="3"><?php $_model->show_lang($name_lang);?></td>
<
td colspan="3"><?php $_model->show_lang($var); ?></td>


Естественно интерпретатор каждый раз не видит какой-то из параметров, который определен в функции, но не передается.
В первом случае это $var, во втором $name_lang

теперь пишу так:
<table width="100%" border="1" cellspacing="0" cellpadding="4">
<tr align="center">
<td colspan="3">Назва мови</td>
<td colspan="3">Статус</td>
<td colspan="3">Дії</td>
</tr>
<tr align="center">

<td colspan="3"><?php $_model->show_lang($name_lang,$var);?></td>
<td colspan="3">форма видалення</td>
</tr>
</table>;
// функцыя show_lang находится в другом файле

пишет ошыбку
Notice: Undefined variable: name_lang in ...

Notice: Undefined variable: var in ...

Спустя 17 минут, 22 секунды (13.02.2012 - 22:12) TranceIT написал(а):
А определять $name_lang и $var кто будет?

Спустя 4 минуты (13.02.2012 - 22:16) Oggy написал(а):
Цитата (TranceIT @ 13.02.2012 - 19:12)
А определять $name_lang и $var кто будет?

напиши пример пожалуйста...

Спустя 30 секунд (13.02.2012 - 22:16) Oggy написал(а):
глобально их опредилить что ли...

Спустя 4 минуты (13.02.2012 - 22:20) TranceIT написал(а):
$var = 'значение';
Вторая по аналогии

Спустя 1 минута, 34 секунды (13.02.2012 - 22:22) Oggy написал(а):
Цитата (TranceIT @ 13.02.2012 - 19:20)
$var = 'значение';
Вторая по аналогии

мне наоборот надо получить из функцыи значение smile.gif...

Спустя 7 минут, 11 секунд (13.02.2012 - 22:29) nugle написал(а):
Oggy
return тебе в этом поможет

Спустя 2 минуты, 21 секунда (13.02.2012 - 22:31) Oggy написал(а):
Цитата (nugle @ 13.02.2012 - 19:29)
Oggy
return тебе в этом поможет

так пишу же

while($row=mysql_fetch_array($result))
{
$id=$row['id'];
$name_lang=$row['name_lang'];
if ($row['statys_lang']=='1') $var='on';
if ($row['statys_lang']=='0') $var='off';

return $name_lang;
return $var;
}

Спустя 1 минута, 32 секунды (13.02.2012 - 22:33) TranceIT написал(а):
Так зачем вы их передаете в параметрах? Мало того что не знаете как функции писать, так еще и меня запутали!

Спустя 2 минуты, 13 секунд (13.02.2012 - 22:35) TranceIT написал(а):
Вы передаете в функцию переменные, которые не существуют...

Спустя 1 минута, 33 секунды (13.02.2012 - 22:37) Oggy написал(а):
Цитата (TranceIT @ 13.02.2012 - 19:33)
Так зачем вы их передаете в параметрах? Мало того что не знаете как функции писать, так еще и меня запутали!

как возвращать результьтат функцыи?

Спустя 1 минута, 26 секунд (13.02.2012 - 22:38) nugle написал(а):
Oggy
Ф-ия завершает свою работу после первого return, после уже ничего не выполняется, т.е. второй return ничего не вернет

Спустя 50 секунд (13.02.2012 - 22:39) TranceIT написал(а):
Вам сюда

Как изучите можно будет вести конструктивную беседу. На данный момент это не представляется возможным.
Там же вы найдете ответ на ваш вопрос.

Спустя 38 секунд (13.02.2012 - 22:40) Oggy написал(а):
Цитата (nugle @ 13.02.2012 - 19:38)
Oggy
Ф-ия завершает свою работу после первого return, после уже ничего не выполняется, т.е. второй return ничего не вернет

как в один ретурн поместить две переменные? )

Спустя 7 минут, 51 секунда (13.02.2012 - 22:47) TranceIT написал(а):
Поместить их в массив и вернуть его

Спустя 32 минуты, 33 секунды (13.02.2012 - 23:20) SerginhoLD написал(а):
Oggy
у тебя объявлена функция которая принимает два параметра, но на самом деле, если взглянуть на твой код, ей параметры не нужны, поэтому объяви так:
public function show_lang()

избавишься от Notice

Спустя 4 минуты, 47 секунд (13.02.2012 - 23:25) SerginhoLD написал(а):
Oggy
и что у тебя за фигня внутри функции? я про запрос и про while, у тебя же функция возвратить первую строку БД, причем while сработает только один раз, так как внутри return, ты вообще че хоть сделать этим пытаешься? smile.gif

Спустя 4 минуты, 28 секунд (13.02.2012 - 23:29) TranceIT написал(а):
SerginhoLD
Не гоните лошадей =)
Пускай человек вначале научится ф-ции создавать =)

Спустя 9 часов, 48 секунд (14.02.2012 - 08:30) Oggy написал(а):
ну тогда так

public function show_lang()
{
if(isset($_POST['add_lang']))
{
$this->admin_connect_bd();
$result=mysql_query("select * from `lang`");
if ($result)
{

while($row=mysql_fetch_array($result))
{
$id=$row['id'];
$name_lang=$row['name_lang'];
if ($row['statys_lang']=='1') $var='включена';
if ($row['statys_lang']=='0') $var='виключена';
$lang = array("name_lang"=>$name_lang, "status"=>$var);
}
return $lang;

}
}
}



хтмл

<table width="100%" border="1" cellspacing="0" cellpadding="4">
<tr align="center">
<td colspan="3">Назва мови</td>
<td colspan="3">Статус</td>
<td colspan="3">Дії</td>
</tr>
<tr align="center">

<td colspan="3"><?php $_model->show_lang();?></td>

<td colspan="3">...</td>
</tr>
</table>

теперь просто ничего не показывает...

Спустя 44 минуты, 42 секунды (14.02.2012 - 09:15) nugle написал(а):
Oggy
результат также надо присвоить переменной, а потом делать вывод

Спустя 4 минуты, 2 секунды (14.02.2012 - 09:19) Oggy написал(а):
Цитата (nugle @ 14.02.2012 - 06:15)
Oggy
результат также надо присвоить переменной, а потом делать вывод

делаю так
html
<td colspan="3"><?php $_model->show_lang($id=''); echo $id;?></td>

public function show_lang($id)
{
$this->admin_connect_bd();
$result=mysql_query("select * from `lang`");
if ($result)
{
while($row=mysql_fetch_array($result))
{
$id=$row['id'];
return $id;
}
return $id;

}

}


//что я нетак сделал?)

Спустя 17 минут, 18 секунд (14.02.2012 - 09:36) nugle написал(а):
Oggy
аааааааа. Говорю присвоить резаультат переменной
public function show_lang()
{
if(isset($_POST['add_lang']))
{
$this->admin_connect_bd();
$result=mysql_query("select * from `lang`");
if ($result)
{

while($row=mysql_fetch_array($result))
{
$id=$row['id'];
$name_lang=$row['name_lang'];
if ($row['statys_lang']=='1') $var='включена';
if ($row['statys_lang']=='0') $var='виключена';
$lang = array("name_lang"=>$name_lang, "status"=>$var);
}
return $lang;

}
}
}



И посмотри о чем я
<table width="100%" border="1" cellspacing="0" cellpadding="4">
<
tr align="center">
<
td colspan="3">Назва мови</td>
<
td colspan="3">Статус</td>
<
td colspan="3">Дії</td>
</
tr>
<
tr align="center">

<
td colspan="3"><?php var_dump($_model->show_lang());?></td>

<
td colspan="3">...</td>
</
tr>
</
table>


Спустя 8 часов, 47 минут, 35 секунд (14.02.2012 - 18:24) Oggy написал(а):
Цитата (nugle @ 14.02.2012 - 06:36)
Oggy
аааааааа. Говорю присвоить резаультат переменной
public function show_lang()
{
if(isset($_POST['add_lang']))
{
$this->admin_connect_bd();
$result=mysql_query("select * from `lang`");
if ($result)
{

while($row=mysql_fetch_array($result))
{
$id=$row['id'];
$name_lang=$row['name_lang'];
if ($row['statys_lang']=='1') $var='включена';
if ($row['statys_lang']=='0') $var='виключена';
$lang = array("name_lang"=>$name_lang, "status"=>$var);
}
return $lang;

}
}
}



И посмотри о чем я
<table width="100%" border="1" cellspacing="0" cellpadding="4">
<
tr align="center">
<
td colspan="3">Назва мови</td>
<
td colspan="3">Статус</td>
<
td colspan="3">Дії</td>
</
tr>
<
tr align="center">

<
td colspan="3"><?php var_dump($_model->show_lang());?></td>

<
td colspan="3">...</td>
</
tr>
</
table>

вот что пишет
array(2) { ["name_lang"]=> string(2) "в" ["status"]=> string(18) "виключена" }

что такое вар дамп?

Спустя 5 минут, 12 секунд (14.02.2012 - 18:29) nugle написал(а):
Oggy
var_dump()
Тебе возвращается массив, присвой его переменной и используй его где хочешь
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.