PDO を使用して、データベースから行を取得するための簡潔なオブジェクトを PHP オブジェクトとして作成しました。最初の列の値は名前で、2 番目の列の値は目的の値です。
$sql = "SELECT * FROM `site`"; $site = array();
foreach($sodb->query($sql) as $sitefield){
$site[$sitefield['name']] = $sitefield['value'];
}
これを 2 つのパラメーターを持つ関数に適用したいと思います。最初のパラメーターにはテーブルが含まれ、2 番目のパラメーターには任意の where 句が含まれ、同じ結果が生成されます。
function select($table,$condition){
$sql = "SELECT * FROM `$table`";
if($condition){
$sql .= " WHERE $condition";
}
foreach($sodb->query($sql) as $field){
return $table[$field['name']] = $field['value'];
}
}
これを次のように呼べるという考え:
<?php select("options","class = 'apples'");?>
最初の方法と同じ形式でページ上で使用されます。
<?php echo $option['green'];?>
field という名前の列の「green」という値と同じ行にある value という名前の列の値を教えてください。
もちろん問題は、関数がそのような foreach データを返さないことです。つまり、このビットです:
foreach($sodb->query($sql) as $field){
return $table[$field['name']] = $field['value'];
}
そのようなデータを返すことはできません。
それを作る方法はありますか?