2013-04-02 45 views
2

在宣佈PHP中的查詢和取一排Netbeans的代碼完成一個記錄

$query=$db->query("select name,address from people where postcode like 'SO%'"); 
$row=$query->fetch_object(); 

是否有可能建立代碼完成,這樣,當我鍵入

$row-> 

我得到查詢中字段的下拉列表(即名稱和地址)。代碼完成適用於很多其他事情,包括內部SQL語句,所以我認爲這將是一個很好的功能(我希望有人會告訴我它已經在那裏了!)

回答

2

$row設計時間,不填充值。該值僅在運行時間上設置,並帶有數據庫查詢。

只有絕對需要的解決方法mydata->

功能setProps()的優點是,可以驗證這些值。

[...] 
define(val1, "name"); 
define(val2, "address"); 

$query = "SELECT ".val1.", ".val2." from people where postcode like 'SO%'"; 
$result = mysql_query($query); 

if (!$result) { 
    $message = 'invalid query: ' . mysql_error() . "\n"; 
    $message .= 'query: ' . $query; 
    die($message); 
} 

while($rows[]=mysql_fetch_array($result,MYSQL_ASSOC)); 

class MyArrayObject extends ArrayObject { 
     public $name; 
     public $address; 

     public function setProps($name) { 
      if (isset($name[val1])) {$this->name = $name[val1]; } 
           else {$this->name = 'n/a';} 
      if (isset($name[val2])) {$this->address = $name[val2]; } 
           else {$this->address = 'n/a';} 
     } 
} 

$mao = new MyArrayObject($rows,ArrayObject::ARRAY_AS_PROPS); 
$iterator = $mao->getIterator(); 
while ($iterator->valid()) { 
    $mao->setProps($iterator->current()); 
    echo "<br>\n"; 
    echo $mao->name . "<br>\n" ; 
    echo $mao->address ; 
    $iterator->next(); 
} 

mysql_close($link); 
[...] 

代碼完成

enter image description here

+0

這是巧妙的。謝謝。 我將您的觀點放在運行時與設計時間之間,但理論上Netbeans可以編程爲實現$ row是從查詢$ query中獲取的,SQL的這個包含字段名稱和地址並顯示它們。 –

1

沒有任何代碼完成。

您只能使用vdoc自動完成existng類。

$query=$db->query("select name,address from people where postcode like 'SO%'"); 
$row=$query->fetch_object(); 
/* @var $row \Existing\Class */ 
$row-> 
+0

感謝你爲這個。我很懷疑。也許我可以試着寫一個插件來做到這一點! –