2012-06-19 4 views
-3

Я хочу использовать $bank в ShowDistrict функции выбора строкКак использовать значение, возвращаемое функцией?

$sql = "SELECT DISTINCT `district` FROM `ctable` WHERE state='$_POST[id]' AND bank='$bank' "; 

, но это не работает ... какой-либо способ сделать это? ...Заранее спасибо.

class SelectList 
{ 
    protected $conn; 

    public function __construct() 
    { 
     $this->DbConnect(); 
    } 

    protected function DbConnect() 
    { 
     include "db_config.php"; 
     $this->conn = mysql_connect($host,$user,$password) OR die("Unable to connect to the database"); 
     mysql_select_db($db,$this->conn) OR die("can not select the database $db"); 
     return TRUE; 
    } 

    public function ShowBank() 
    { 
     $sql = "SELECT DISTINCT `bank` FROM `ctable` WHERE 1 LIMIT 0, 30 "; 
     $res = mysql_query($sql,$this->conn); 
     $bank = '<option value="0">choose...</option>'; 
     while($row = mysql_fetch_array($res)) 
     { 
      $bank .= '<option value="' . $row['bank'] . '">' . $row['bank'] . '</option>'; 
     } 
     return $bank; 
    } 

    public function ShowState() 
    { 
     $sql = "SELECT DISTINCT `state` FROM `ctable` WHERE bank='$_POST[id]'"; 
     $res = mysql_query($sql,$this->conn); 
     $state = '<option value="0">choose...</option>'; 
     while($row = mysql_fetch_array($res)) 
     { 
      $state .= '<option value="' . $row['state'] . '">' . $row['state'] . '</option>'; 
     } 
     return $state; 
    } 


    public function ShowDistrict() 
    { 
     $sql = "SELECT DISTINCT `district` FROM `ctable` WHERE state='$_POST[id]'"; 
     $res = mysql_query($sql,$this->conn); 
     $district = '<option value="0">choose...</option>'; 
     while($row = mysql_fetch_array($res)) 
     { 
      $district .= '<option value="' . $row['district'] . '">' . $row['district'] . '</option>'; 
     } 
     return $district; 
    } 


      public function ShowBranch() 
    { 
     $sql = "SELECT DISTINCT `bname` FROM `ctable` WHERE district='$_POST[id]'"; 
     $res = mysql_query($sql,$this->conn); 
     $bname = '<option value="0">choose...</option>'; 
     while($row = mysql_fetch_array($res)) 
     { 
      $bname .= '<option value="' . $row['bname'] . '">' . $row['bname'] . '</option>'; 
     } 
     return $bname; 
    } 

} 

$opt = new SelectList(); 
+1

Эмм ... '$ банк = $ this-> ShowBank(); ' ? – deceze

+0

Пожалуйста, прекратите писать новый код с помощью древних функций mysql_ *. Они больше не поддерживаются, и сообщество начинает процесс осуждения. Вместо этого вы должны узнать о подготовленных операторах и использовать либо PDO, либо MySQLi. – Bono

ответ

1

Как заявил deceze в комментариях это сделать:

$bank = $this->showBank(); 

showBank() функция возвращает значение $bank. Поэтому вы передаете возвращаемое значение из функции в переменную $bank, которая затем может быть использована.

$this позволяет вам выбирать функции/переменные внутри вас.

+0

Пожалуйста, приведи пример. –

+1

@BharatJat .. Это пример. – Bono

0

в вашем коде $ bank - это строка, которая находится в цикле while каждый раз, когда она объединяется с другой строкой.

$ банк содержит строку, как

"<option value='bank1'>bank1</option><option value='bank2'>bank2</option>..."; 

так что если вы возвращаете эту строку она содержит unnessary данные

$sql = "SELECT DISTINCT `district` FROM `ctable` WHERE state='$_POST[id]' AND bank='$bank' "; 
+0

ohh ... я вижу .... я говорю о прикомандированных выделениях, и третий выпадающий список должен быть заполнен с помощью первого и второго, а не только первого. Должен ли я отправлять значение первого и второго выпадающего списка в этот файл php для выбора правильный район из базы данных в функции ShowDistrict? –

Смежные вопросы