你的指的是无限级吧,A是B和C的父级,B是D,E,F的父级,C是G和H的父级,D又是I,J,K的父级。一般都是采用递归算法。
创新互联主营下花园网站建设的网络公司,主营网站建设方案,app开发定制,下花园h5成都小程序开发搭建,下花园网站营销推广欢迎下花园等地区企业咨询
/**
* 无限级的遍历
* @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;
}
完整的代码如下:
$con = mysql_connect('localhost(服务器地址)', '数据库用户名', '数据库密码');
//数据库连接。
if (!$con)
{
die('Could not connect: ' . mysql_error());
}//连接失败输出错误
mysql_select_db('数据库名', $con);
$sql = "select Name from 表名;";
$result = mysql_query($sql,$con);
while($row= mysql_fetch_array($result)){
echo $row['Name'];
}
这当然是不行的了,上面的告诉你的也是错误的,因为原因在于你循环的时候进行了数据库的查询,所以每次都是新的数据,指针当然要从第一条开始了。
所以不是你的循环的错误,而是你数据库查询代码位置的错误
要这样写
$num=mysql_query("select * from china_city where parentid=0");
$n=mysql_num_rows($num);
for($i=1;$i=$n;$i++){
${"row".$i}=mysql_fetch_array($num);
echo $i." ".${"row".$i}['city']."br";
}
一般都是用foreach或while写的
foreach(mysql_fetch_array($num) as $key=$value){}
while($row =mysql_fetch_array($num)){}