Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрос mysql, при вызове из функции, выдает ошибку.
 
 автор: Зосим   (03.03.2008 в 16:20)   письмо автору
 
 

Вот если просто так написать то ошибки не выдает, а показывает то что надо.
echo mysql_result((mysql_query("select name from aft where iduser=$id")),$i);


Но если это поставить внутрь функции таким образом.


function result($i){
echo mysql_result((mysql_query("select name from aft where iduser=$id")),$i);
}
result(0);


То mysql выдает сразу две ошибки(( Подскажите плиз, в чем проблема. А то я уже ничего не понимаю.

   
 
 автор: KirillKiev   (03.03.2008 в 16:26)   письмо автору
 
   для: Зосим   (03.03.2008 в 16:20)
 

а как ошибки выглядят?

   
 
 автор: Зосим   (03.03.2008 в 16:46)   письмо автору
 
   для: KirillKiev   (03.03.2008 в 16:26)
 

Warning: mysql_query() [http://www.mysql.com/doc]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in D:\web\item.php on line 4

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in D:\web\item.php on line 4

Вот так.

   
 
 автор: olejek   (03.03.2008 в 16:47)   письмо автору
 
   для: Зосим   (03.03.2008 в 16:20)
 

В функции result($i) переменная $id не определена

   
 
 автор: Зосим   (03.03.2008 в 17:07)   письмо автору
 
   для: olejek   (03.03.2008 в 16:47)
 

Дык она выше по тексту определена, я не стал все вывешивать, а то там много получается.
Я же говорю, пока в функцию, то не помещу это, результат нормально выдает.

   
 
 автор: KirillKiev   (03.03.2008 в 17:14)   письмо автору
 
   для: Зосим   (03.03.2008 в 17:07)
 

у вас в функции иметься в виду не определена переменная $id

function result($i){
echo mysql_result((mysql_query("select name from aft where iduser=$id")),$i); 

мождет нужно как то так

function result( $i, $id ){
echo mysql_result((mysql_query("select name from aft where iduser=$id")),$i); 

   
 
 автор: Зосим   (03.03.2008 в 17:26)   письмо автору
 
   для: KirillKiev   (03.03.2008 в 17:14)
 

Точно, так работает. Спасибо большое. Только я не понял, все используемые переменные в функции, надо обязательно,или внутри функции объявлять или как аргумент использовать??
Ну то есть, переменные объявленные вне функции, внутри функции не видны??
Надеюсь понятно спросил)) Извините за нубские вопросы, я всего вторую неделю как это дело изучаю.

   
 
 автор: olejek   (03.03.2008 в 17:19)   письмо автору
 
   для: Зосим   (03.03.2008 в 17:07)
 

>Дык она выше по тексту определена
Выше - это где: за пределами функции или в теле функции?

   
 
 автор: Зосим   (03.03.2008 в 17:28)   письмо автору
 
   для: olejek   (03.03.2008 в 17:19)
 

Ага, за пределами функции. Её не видно да??

   
 
 автор: KirillKiev   (03.03.2008 в 17:39)   письмо автору
 
   для: Зосим   (03.03.2008 в 17:28)
 

Не видно... да... :)
можно еще в начале функции сделать
global id;
например тогда глобальная переменная $id которая определена не в функции будет видна внутри функции
типа

function result($i){
global $id;
echo mysql_result((mysql_query("select name from aft where iduser=$id")),$i);

   
 
 автор: olejek   (03.03.2008 в 17:42)   письмо автору
 
   для: Зосим   (03.03.2008 в 17:28)
 

Почитайте это http://rus-phpnuke.com/php/variables.scope.html.
Там все подробно описано.
Я тоже, когда начинал программировать на php, тратил кучу времени на поиск подобных ошибок. Ведь в Pascal и С глобальные переменные видны в теле функции. Так что как-то дико было привыкать к такой видимости переменных. Зато это имеет свои преимущества.

   
 
 автор: Зосим   (03.03.2008 в 18:34)   письмо автору
 
   для: olejek   (03.03.2008 в 17:42)
 

Вот, вот, я от этого и был уверен,что функция переменную $id видит нормально. Думаю с mysql какая-то фигня, тем более что ни в англицком, ни в mysql не бум-бум)))Спасибо большое, что уделили внимание моей проблеме.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования