2013-07-17 28 views
0

我想發送一個php變量到運行mysql查詢的類。這是一個典型的通過html表單搜索。我必須使用Smarty。發送php變量到一個類並運行mysql查詢與Smarty

如何將變量「$ minta」傳遞給sql查詢以及如何將結果數組返回到php來顯示?

Smarty tpl文件正常(帶有ingatlank變量的lista_keres.tpl)。

預先感謝您。

Tuwanbi

的PHP:

if (isset($_POST['keresoszo'])){ 

    include_once "classes/ingatlan.class.php"; 
    include_once "classes/main.class.php"; 
    include_once "classes/felhasznalo.class.php"; 

    $ingatlan = new Ingatlan(); 
    $felhasznalo = new Felhasznalo(); 
    $minta = $_POST['keresoszo']; 

    $kereses = new Main(); 
    $kereses->getKeresIngatlan($minta); 

     $smarty->assign("kapcsolattartok", $ingatlan->getKapcsolattartok()); 
     $smarty->assign("ingatlank", $main->getKeresIngatlan()); 
     $smarty->assign("include_file", lista_keres); 

echo $minta; 

}

類:

<?php 

class Main{ 
private $keresoszo; 
... 
public function getKeresIngatlan($minta){ 

    $this->keresoszo=$minta; 

    $ret = array(); 
    $sql="SELECT id FROM table WHERE id LIKE '% ".$keresoszo." %'"; 
    $ret = $this->db->GetArray($sql); 
    return $ret; 
} 

} 
?> 
+0

你得到什麼錯誤? – Muc

+0

Smarty模板未加載,我只有白頁。 – user2591576

+0

我沒有看到任何$ smarty-> render()或這樣的調用。代碼中是否有其他地方? – Muc

回答

0

聲明private $keresoszo;就變成了類對象,並可以通過 $this->keresoszo你可以訪問你有分配的sql查詢d值這個對象,但沒有用它

<?php 

class Main{ 
private $keresoszo; 
... 
public function getKeresIngatlan($minta){ 

    $this->keresoszo=$minta; 

    $ret = array(); 
    $sql="SELECT id FROM table WHERE id LIKE '% ".$this->keresoszo." %'"; 
    $ret = $this->db->GetArray($sql); 
    return $ret; 
} 

} 
?> 

這裏是你如何可以取回結果

$kereses = new Main(); 
    $results_set=$kereses->getKeresIngatlan($minta); 
    var_dump($results_set);// for testing only 
     $smarty->assign("my_results_set", $results_set); 
+0

謝謝你的幫助。 我已經修改了php和類,但有些東西是錯的,它什麼也沒做,模板文件也沒有加載。 如果我評論行 ** $ results_set = $ kereses-> getKeresIngatlan($ minta); ** 模板被加載(沒有結果)。 – user2591576