function querySub(&$parent, $table, $orderBy = null, $key = 'Id'){
$sql = "SELECT * FROM $table WHERE $key = $parent[$key]";
if($orderBy) {
$sql .= ' ORDER BY '.$orderBy;
}
$rows = query($sql);
foreach ($rows as $i => $row) {
foreach ($row as $field => $value) {
if($value === null) {
$row[$field] = '--';
}
}
$rows[$i] = $row;
}
$parent[$table] = $rows;
}
$sql = "SELECT * FROM $table WHERE $key = $parent[$key]";
if($orderBy) {
$sql .= ' ORDER BY '.$orderBy;
}
$rows = query($sql);
foreach ($rows as $i => $row) {
foreach ($row as $field => $value) {
if($value === null) {
$row[$field] = '--';
}
}
$rows[$i] = $row;
}
$parent[$table] = $rows;
}
我就没学过php。。
//output parent,string table,string orderBy=null, string key='Id'
function querySub(&$parent, $table, $orderBy = null, $key = 'Id'){
$sql = "SELECT * FROM $table WHERE $key = $parent[$key]";
if($orderBy) {
$sql .= ' ORDER BY '.$orderBy;
}
$rows = query($sql);
//上面不用我解释了吧,查询语句返回结果集
foreach ($rows as $i => $row) {
//循环结果集
//foreach(string[] row in rows)
foreach ($row as $field => $value) {
//foreach(string value in row)
if($value === null) {
//if(value==null)
$row[$field] = '--';
//这里是赋值
}
}
$rows[$i] = $row;
//这里是赋值
}
$parent[$table] = $rows;
//这里是赋值
}可以用hashtable,或者数组
#运行时,必须定义一个$parent变量
$parent = null;
#函数的参数:
#&$parent: 表字段值的数组
#$table: 查询的表名
#$orderBy: 需要排序的字段
#$key: 作为查询条件的字段名,默认为Id
function querySub(&$parent, $table, $orderBy = null, $key = 'Id'){
#查询的sql语句
$sql = "SELECT * FROM $table WHERE $key = $parent[$key]";
#如果添加了排序字段
if($orderBy) {
#在$sql后面添加排序的sql语句
$sql .= ' ORDER BY '.$orderBy;
}
#执行sql语句并将结果集返回给$rows
$rows = query($sql);
#对$rows做循环
foreach ($rows as $i => $row) {
#对$rows的子数组做循环
foreach ($row as $field => $value) {
#如果子数组中存在空值
if($value === null) {
#将空值替换成"--"
$row[$field] = '--';
}
}
#重组数组
$rows[$i] = $row;
}
#将重组后的数组存入$parent数组,并以表名作为其键值
$parent[$table] = $rows;
}