Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Куда "исчезло" значение 
:(
    Опции темы
Serebrus
Дата 26.1.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 22.5.2007
Где: Ташкент

Репутация: нет
Всего: нет



Привет всем.

Есть такой код:
Код

$a='';

...

function ShowField($sid)
{
 global $a;
 $qr=mysql_query("SELECT `name` FROM `alltexnika` WHERE `id`=".$sid.";");
 if($r=mysql_fetch_array($qr, MYSQL_NUM))
 {
  echo "<td><font>".$r[0]."</font></td>";        
  $a=$r[0];        
 }        
}

...//здесь вызывается функция ShowField

echo $a; //пустое значение


Подскажите, где есть ошибка?

Это сообщение отредактировал(а) Serebrus - 26.1.2009, 14:38
PM MAIL   Вверх
awers
Дата 26.1.2009, 14:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



а может лучше сделать в функции вместо $a=$r[0]; - return $r[0]; ?
PM MAIL WWW ICQ Skype   Вверх
Serebrus
Дата 26.1.2009, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 22.5.2007
Где: Ташкент

Репутация: нет
Всего: нет



awers, я хотел "выстрелить две кролика одним выстрелом": первое, взять с помощю функции
Цитата(Serebrus @  26.1.2009,  14:37 Найти цитируемый пост)
echo "<td><font>".$r[0]."</font></td>";

это нужно только в одном месте (и один раз), и второе, иметь возможность использования значения $a не "беспокоя" функцию, а в твоем случае всегда надо вызывать функцию, когда можно только лиш написать, ну допустим echo $a;


Это сообщение отредактировал(а) Serebrus - 26.1.2009, 15:05
PM MAIL   Вверх
awers
Дата 26.1.2009, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



на сколько я понимаю 
Код

function ShowField($sid)
{
 $qr=mysql_query("SELECT `name` FROM `alltexnika` WHERE `id`=".$sid.";");
 if($r=mysql_fetch_array($qr, MYSQL_NUM))
 {
  echo "<td><font>".$r[0]."</font></td>";        
  return $r[0];        
 }        
}

$a = ShowField(123);


 smile 
PM MAIL WWW ICQ Skype   Вверх
pizzz
Дата 26.1.2009, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



Вариантов масса. Предлагаю для начала поставить после запроса echo mysql_error(); И посмотреть а вобще выполняеться ли блок в котором $a обретает значение
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
Serebrus
Дата 26.1.2009, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 22.5.2007
Где: Ташкент

Репутация: нет
Всего: нет



awers, кажется ты не понил меня. я хотел присваивая значение $r[0] к $a, использовать его (т.е. $a) в любом месте после вызова функции, а если я поступлу как ты говариш, будет лищнее обращение на БД всегда когда я напишу $a = ShowField(123); Типерь ты понил меня?
PM MAIL   Вверх
awers
Дата 26.1.2009, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



не. это ты не понял )) в том месте где тебе надо вывести данные функцией пишешь не просто вызов онной, а с присваиванием переменной. после этого уаля - твоя переменная готова и данные выведены )

just try
PM MAIL WWW ICQ Skype   Вверх
pizzz
Дата 26.1.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



awers, Вы имеете в виду так:

Код

<?php echo $a = func ($q); ?>


Добавлено через 2 минуты и 56 секунд
А чтобы небыло дублирующихся обращений в функции так:

function func () {
    static $a;
    if ($a != "") return $a;
    // Код получения $a
}
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
awers
Дата 26.1.2009, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



pizzz, не
Я предложил
Код

$a = func($q); // это выведет результат выполнения функции и вернет нужное значение, присвоив $a
....

echo $a ....


Добавлено через 1 минуту и 36 секунд
и какие еще дублирующие функции. у него как я понял только 1 раз вызывается функция. одно присвоение. все норм. пусть попробует

Это сообщение отредактировал(а) awers - 26.1.2009, 15:24
PM MAIL WWW ICQ Skype   Вверх
pizzz
Дата 26.1.2009, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



Цитата(Serebrus @  26.1.2009,  15:11 Найти цитируемый пост)
будет лищнее обращение на БД всегда когда я напишу $a = ShowField(123);


Цитата(awers @  26.1.2009,  15:23 Найти цитируемый пост)
и какие еще дублирующие функции. у него как я понял только 1 раз вызывается функция. одно присвоение. все норм. пусть попробует



Вобщем я Вас правильно понял  smile 
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.