나는 이런 식으로 DB 구조를가집니다.다차원 배열을 사용하여 PHP에서 재귀 루프
stopid | parentid
2 | 1
3 | 1
5 | 2
9 | 2
8 | 2
11 | 3
11 | 9
시작 중지 및 최종 정지를 검색하고 싶습니다. 그것은 정렬 또는 프로그래밍 방식으로 검색하는 것입니다. 부모님 아이디로 먼저 중지했습니다. 그리고 마지막 stopid stopid. 1에서 11까지 첫 번째 정지 지점을 검색해야하므로 마지막 정지 11에서 시작하여 루프를 반복 한 다음 루프를 반복합니다. 그들의 논리가 맞습니까? 나는 시도했지만 성공하지 못했다. 모든 루트를 최종화 할 필요는 없습니다. 난 단지 첫 번째 뿌리가 호환되기를 원한다. 같은 ..
1 -> 11 - 1 -> 3> 2 -> 9 - 이런 식으로> 11 ... 나는 당신을 이해하는 것과
extract($_POST);
echo "From :$from to $to".'<br/>';
$sql="select parentid, stopid from routes WHERE stopid = '".$to."' ";
echo $sql.'<br/>';
$result = mysql_query($sql) or die(mysql_error());
$count = mysql_num_rows($result) or die(mysql_error());
$stopid = array();
while($row = mysql_fetch_array($result)) {
$stopid[$row['stopid']][] = $row['parentid'];
}
echo '<pre>';
$countarray = count($stopid);
while($countarray >= 1){
foreach($stopid as $finalstop_value){
foreach($finalstop_value as $finalstop_ky => $finalstop_vl){
$query = "SELECT * FROM routes WHERE stopid = '".$finalstop_vl."'";
$sql = mysql_query($query) or die(mysql_error());
echo $query. ' Gives '.mysql_num_rows($sql).' rows...<br/>';
while($row = mysql_fetch_array($sql)) {
$new_stopid[$finalstop_vl][$row['stopid']][] = $row['parentid'];
}
echo '<pre>';
print_r($new_stopid);
// $stopid[$finalstop_vl][] = $new_stopid;
$countarray--;
}
}
}
print_r($stopid);
exit;
전체 시퀀스를 루트 (1-3-11)까지 또는 * 모든 * 루트 (예제에서 1 개)를 찾으시겠습니까? – galymzhan
나는 모든 루트를 얻고 싶지 않다. (선택 사항 - U가 모든 루트를 찾을 수있는 경우). 다른 하나는 적어도 하나의 뿌리를 필요로합니다 (아무 문제가 없거나 짧습니다)하지만 나는 순서를 원합니다. –