2013-11-24 72 views
1

我有问题的功能。我把它们写在config/funkcije.php中。在文件夹中的config /我有db.php中它连接到数据库,等等......当我在浏览器中的config/funkcije.php没有打开显示页面上,但它应该呼应了从DB一些成果。PHP函数问题

这是我的函数:

include 'db.php'; 
function prikaz_posebne_ponude() 
{ 

    $sql = "SELECT * FROM posebna_ponuda ORDER BY id DESC LIMIT 1"; 
    $sql1 = $mysqli->query("$sql"); 
    while ($row = $sql1->fetch_assoc()) { 
     $glavni_naziv = $row[$lang]; 
     if (empty($glavni_naziv)) { 
      echo ''; 
     } else { 

      echo "<div class='row-banner'>"; 
      echo "<h3><span>" . $langArray['rezervacija_smjestaja'] . "</span></h3>"; 
      echo "<p>" . $glavni_naziv . "</p>"; 
      echo "</div>"; 

     } 
    } 
} 

但是,当我在最后一行删除功能prikaz_posebne_ponude(){和}一切工作正常。这是为什么发生?

+2

**人提示:**在英文名称的变量/函数 – HamZa

+0

你需要让'$ mysqli'全球变化:'global $ mysqli;'和'$ langArray'。 –

+0

该函数很可能未被调用。 –

回答

5

定义的功能,但你永远不会它。函数是可重用代码块,但执行所包含的语句,你必须通话的功能是这样的:

prikaz_posebne_ponude(); 

您还需要告诉PHP,有些变量是全局性的(你的函数里):

global $mysqli; 
global $langArray; 
global $lang; 
+0

我打电话给它,但仍然没有任何反应! :S – user3002173

+0

@ user3002173不要忘了加上'$全球的mysqli;全局$ langArray;全球$ lang;'你的功能。 –

0

添加到这个prikaz_posebne_ponude()的结尾处;你会看到结果。 函数被制成一段代码被称为你需要它每次。

2

首先,你在被定义在函数外的函数使用的变量必须是全球性的:

function prikaz_posebne_ponude() 
{ 

    global $mysqli; 
    global $langArray; 
    .... 
} 

然后,你需要通话功能来运行它:

prikaz_posebne_ponude(); 
+0

谢谢你,这解决了我的问题! :) – user3002173

0

您可以将必要的变量解析到函数中:

function function_name ($con,$LangArray,$Lang){ 
    /* 
    Manipulate here 
    */ 
} 

或使它们的全球:

function function_name(){ 
    global $mysqli; 
    global $langArray; 
    global $Lang; 
} 

然后调用:

$LangArray = array("test","test_1"); 
$Lang = "Value"; 
$mysqli = new mysqli("127.0.0.1","user","pass","db"); 
function_name($mysqli,$LangArray,$Lang);