2013-04-02 72 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

感谢你为这个。我很怀疑。也许我可以试着写一个插件来做到这一点! –