Объясните почему такая шляпа:
так работает:
<?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 ?
Правильно делать return, а не глобальные лепить на всё подряд.
К тому же объясни, зачем глобал на $mysql_Q ?
Спустя 3 часа, 33 минуты, 12 секунд (31.12.2011 - 18:09) mid написал(а):
Всем огромное спасибо:)
С настуупаааююююющииииим!
С настуупаааююююющииииим!
_____________
По любому вопросу : programmer-php@mail.ru