$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);
[...]
代碼完成
這是巧妙的。謝謝。 我將您的觀點放在運行時與設計時間之間,但理論上Netbeans可以編程爲實現$ row是從查詢$ query中獲取的,SQL的這個包含字段名稱和地址並顯示它們。 –