把数据都查出来,然后放到一个大数组里,然后对数组里面的内容进行匹配,将符合的放入一个新数组里,PHP的操作远比对数据库的操作要省时省力的多
创新互联专注于遂溪网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供遂溪营销型网站建设,遂溪网站制作、遂溪网页设计、遂溪网站官网定制、微信小程序服务,打造遂溪网络公司原创品牌,更为您提供遂溪网站排名全网营销落地服务。
你的指的是无限级吧,A是B和C的父级,B是D,E,F的父级,C是G和H的父级,D又是I,J,K的父级。一般都是采用递归算法。
/**
* 无限级的遍历
* @param [array] $data 所有数据
* @param integer $parent parent为0时,是最祖先级
* @param integer $level 记录几级
* @return [array] 已经遍历好的数组
*/
public function category($data,$parent=0,$level=0){
$array = [];
foreach ($data as $key = $value) {
if($value['parent'] == $parent){
$value['level'] = $level;
$array[] = $value;
$this-category($data,$value['id'],$level+1);
}
}
return $array;
}
一般我们为了减少数据库链接,取数据是一次取出所有想要的数据然后做循环处理,而不是一个个循环取出
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "aaaa";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn-connect_error) {
die("连接失败: " . $conn-connect_error);
}
$conn-query('set names utf8');
$sql = "SELECT name FROM xiao ";//这里是查询xiao表的name列的所有数据
$result = $conn-query($sql);
if ($result-num_rows 0) {
// 输出数据
while($row = $result-fetch_assoc()) {
//print_r($row);
echo "name: " . $row["name"]."br";//这里是循环打印
}
} else {
echo "没有查询到数据";
}
$conn-close();