İşte var kod. Her şey bir fonksiyonu ile birden fazla komut aynı ilan sınıf değişkeni kullanmaya çalışırken dışında çalışıyor.
include("include/database.class.php");
$db = new Database();
$db->connect();
function fill_roles()
{
global $db;
$r = $db->get_roles_all_order_by_name();
$drop_down = "<select id='dd_roles' name='dd_roles'>
<option> </option>";
while($row = mysql_fetch_array($r))
{
$drop_down .= "<option value=$row[id]>$row[role_display_name]</option>";
}
$drop_down .= "</select>";
return $drop_down;
}
//$test = mysql_num_rows($db->get_users_with_role_all());
echo $test . fill_roles();
Ben yukarıda yazıldığı gibi kod bırakırsanız, kutusunda aşağı açılan kısa zamanda ben bu satırı yorumsuz olarak doldurulduktan
//$test = mysql_num_rows($db->get_users_with_role_all());
kutusunun aşağı açılan artık içeri doldurulur
Ben bu top fill_roles arasında () işlevini değiştirirseniz
function fill_roles()
{
//global $db;
$db = new Database();
$db->connect();
...rest of code as above...
}
Her tekrar çalışıyor.
Ben $ db bir yöntem kullandık zaman "global $ db" kullanarak nedense çalışmıyor, daha sonra) (işlevini fill_roles diyoruz. Nedense ben olarak var olsa bile işlev içinde yeniden ilan sınıf Veritabanı var "global $ db;"
Ben "global $ db;" bilmek çünkü artık işlevini fill_roles () gitmeden önce Veritabanı bir yöntem çağırıyor zaman "/ / $ test = ..." için yapılan küçük yorumun iyi çalışıyor.
PHP benim acemi bilgi ile ben ona bakarak ve o anal davranıyor nedense iş ama gerektiğini düşünüyorum. Nasıl işlevi yeniden ilan sınıf Veritabanı ve aynı zamanda () re-beyanı önlemek için fill_roles için değişken $ db geçmek zorunda değil zorunda önleyebilirsiniz.