使用PHP从多个mysql表中检测与while循环的关系

时间:2018-01-11 17:34:43

标签: php mysql

我尝试映射不同电话用户之间的关系(呼叫代答组成员资格,直接呼叫按钮和其他额外功能)。

基本订户数据存储在表格中,编程的特征数据存储在多个不同的表格中。我想运行循环,直到找不到任何新的关系。

收集的数据字段值类型在所有表中都是INT。

我试着在过去一周弄清楚问题是什么,但我仍然没有弄清楚为什么它不能正常工作。

这是我的代码:

$migrate = $numbers;
        //Store relations in a different array
    do{
            $sel="USE " . $_SESSION['dest'];
            $res= mysqli_query($link,$sel);
                if (!$res) {
                printf("Error: %s\n", mysqli_error($link));
                exit();
                }
                unset($newnumbers);
                $newnumbers = [];
            foreach ($numbers as $src){
            $keres="SELECT * FROM extensions WHERE stno LIKE " . $src;
            $fut=mysqli_query($link,$keres);
            if (!$fut) {
                printf("Error: %s\n", mysqli_error($link));
                exit();
            }
            while ($sor = mysqli_fetch_array($fut)){

                $query="SELECT * FROM dss WHERE srcno LIKE '" . $sor['stno'] . "'";
                $run=mysqli_query($link,$query);
                if (!$run) {
                 printf("Error: %s\n", mysqli_error($link));
                 exit();
                    }
                    while ($name=mysqli_fetch_array($run)){

                        if($name['destno'] != ""){  
                        if(!in_array($name['destno'],$migrate)){
                            $results[]=$name['destno'];     
                            }}}

                if($sor['pickup']!= ""){
                    $query="SELECT * FROM pickup WHERE grno LIKE '" . $sor['pickup'] . "'";
                    $run=mysqli_query($link,$query);
                    if (!$run) {
                        printf("Error: %s\n", mysqli_error($link));
                        exit();
                    }
                        while ($name=mysqli_fetch_array($run)){
                            if($name['stno']!=""){  
                                if(!in_array($name['stno'],$results)){
                                $results[]=$name['stno'];
                                }}}}

                if($sor['chese']!=""){
                    $query="SELECT * FROM chese WHERE grno LIKE '" .  $sor['chese'] . "'";
                    $run=mysqli_query($link,$query);
                    if (!$run) {
                    printf("Error: %s\n", mysqli_error($link));
                    exit();
                    } 
                    while ($cd=mysqli_fetch_array($run)){
                        if($cd['exec1']!="0"){  
                        if(!in_array($cd['exec1'],$results)){
                        $results[]=$cd['exec1'];
                        }}
                        if($cd['exec2']!="0"){
                        if(!in_array($cd['exec2'],$results)){
                        $results[]=$cd['exec2'];
                        }}
                        if($cd['exec3']!="0"){
                        if(!in_array($cd['exec3'],$results)){
                        $results[]=$cd['exec3'];
                        }}
                        if($cd['exec4']!="0"){
                        if(!in_array($cd['exec4'],$results)){
                        $results[]=$cd['exec4'];
                        }}
                        if($cd['secr1']!="0"){
                        if(!in_array($cd['secr1'],$results)){
                        $results[]=$cd['secr1'];
                        }}
                        if($cd['secr2']!="0"){
                        if(!in_array($cd['secr2'],$results)){
                        $results[]=$cd['secr2'];
                        }}
                        if($cd['rep']!="0"){
                        if(!in_array($cd['rep'],$results)){
                        $results[]=$cd['rep'];
                        }}
                        if($cd['rep1']!="0"){
                        if(!in_array($cd['rep1'],$results)){
                        $results[]=$cd['rep1'];
                        }}
                        if($cd['rep2']!="0"){
                        if(!in_array($cd['rep2'],$results)){
                        $results[]=$cd['rep2'];
                        }}
                    }}}} 
                    foreach ($results as $res){
                        if(!in_array($res,$migrate)){
                        $migrate[]=$res;
                        $newnumbers[]=$res;
                        }}
                        unset($numbers);
                        unset($results);
                        $results = [];
                        $numbers = [];
                        $numbers = $newnumbers;

                    }while(count($newnumbers) == "0");

感谢社区的帮助

0 个答案:

没有答案