[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Пользовательские функции
mid
B) Всех с наступающим новым годом!:)

Объясните почему такая шляпа:
так работает:
<?php


function
connect($host,$user,$password,$table){
$mysql_C = mysql_connect($host,$user,$password);
mysql_select_db($table,$mysql_C);
}


function sql($sql){
$mysql_Q = mysql_query($sql);
$mysql = mysql_fetch_array($mysql_Q);
echo $mysql['page'];
}


connect("localhost","cms","cms","cms");
sql("SELECT `page` FROM `index` WHERE `id`='1'");


?>


А так нет
<?php


function
connect($host,$user,$password,$table){
$mysql_C = mysql_connect($host,$user,$password);
mysql_select_db($table,$mysql_C);
}


function sql($sql){
$mysql_Q = mysql_query($sql);
$mysql = mysql_fetch_array($mysql_Q);

}


connect("localhost","cms","cms","cms");
sql("SELECT `page` FROM `index` WHERE `id`='1'");
echo $mysql['page'];


?>




Спустя 41 минута, 46 секунд (31.12.2011 - 11:16) Guest написал(а):
Так посмотри на область видимости переменных и все поймешь.

Спустя 1 минута, 12 секунд (31.12.2011 - 11:17) sergeiss написал(а):
Это потому, что переменная $mysql доступна только внутри функции sql(). А ты пытаешься использовать её вне этой функции.

Ты лучше напиши внутри функции, в самом конце
return $mysql;

а вызов делай так:
$retval=sql("SELECT `page` FROM `index` WHERE `id`='1'");


И будет тебе счастье :)

А вообще - надо к НГ готовиться, а не кодить ;) С наступающим!

Спустя 45 минут, 44 секунды (31.12.2011 - 12:03) johniek_comp написал(а):
переменная которая внутри ф-и не видна остальному кому, или вызывай её в конце ф-и или делай видной через global

хотя по моему тут ф-я не нужна

 <?php


function
connect($host,$user,$password,$table){
global $mysql_C;
$mysql_C = mysql_connect($host,$user,$password);
mysql_select_db($table,$mysql_C);
}


function sql($sql){
global $mysql_Q;
$mysql_Q = mysql_query($sql);
global $mysql;
$mysql = mysql_fetch_array($mysql_Q);

}


connect("localhost","cms","cms","cms");
sql("SELECT `page` FROM `index` WHERE `id`='1'");
echo $mysql['page'];


?>

Спустя 2 часа, 32 минуты, 53 секунды (31.12.2011 - 14:36) inpost написал(а):
johniek_comp
Правильно делать return, а не глобальные лепить на всё подряд.
К тому же объясни, зачем глобал на $mysql_Q ? smile.gif

Спустя 3 часа, 33 минуты, 12 секунд (31.12.2011 - 18:09) mid написал(а):
Всем огромное спасибо:)
С настуупаааююююющииииим! huh.gif


_____________
По любому вопросу : programmer-php@mail.ru
Быстрый ответ:

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