Мой вывод отображается более одного раза. Я хочу отобразить его один раз, исправляя приведенный ниже код - PullRequest
0 голосов
/ 29 марта 2010

Пожалуйста, помогите мне исправить мой код. Здесь я описал код, что и почему я использую ... и, наконец, то, что я получаю в конце, но конечный вывод - это не то, что я хочу ... Пожалуйста, помогите и скажите, как я могу это исправить ...

$count = substr_count($row4['ACTION_STATEMENT'], " IF (NEW.");/*here i will get how many time i will get " IF (NEW." in my string.*/
                $exp1 = explode("(NEW.",$row4['ACTION_STATEMENT']);/*I exploded it from "NEW."*/
/*echo "<pre>";
print_r($exp1);*/


                for($i=1;$i<count($exp1);$i++)/*Loop for values in $exp1*/
                {
                    //echo $exp1[$i];
                    $exp2[] = explode(" !=",$exp1[$i]);/*exploded by " !="*/
                }//print_r($exp2);

                $flag = true;
                if($flag == true)
                {
                    $column = mysqli_query($link,"SELECT * FROM COLUMNS WHERE TABLE_SCHEMA = '".$row3['TABLE_SCHEMA']."' and TABLE_NAME = '".$row3['TABLE_NAME']."'"); /*This query will give me 21 values*/
                    while ($row5 = mysqli_fetch_array($column))
                    {/*echo "<pre>pd";
                    print_r($row5);*/

                        foreach($exp2 as $fieldsarr)/*loop used  for further comaprison of $exp2 with above query values*/
                        { 
                        echo "<br>";

                        //print_r($fieldsarr);

                            if($fieldsarr[0] == $row5['COLUMN_NAME'] )/*Comparison of values*/
                            { 
                                if($fieldsarr[0]!='id')
                                {//echo $fieldsarr[0];

                                mysqli_select_db($link,'pranav_test');
                                $aud = mysqli_query($link,"SELECT * FROM `jos_menuaudit`") or die("DEAD".mysqli_error());
                                    while($audit = mysqli_fetch_array($aud))
                                    {
                                        echo "<pre>";
                                        echo $fieldsarr[0].$row5['COLUMN_NAME'];
                                    print_r($audit);    /*Values displayed according to query written above after true comparsion of conditions*/
                                    }
                                }
                            }
                        }
                        mysqli_select_db($link,'information_schema');
                    }
                }

Код сверху. Вывод, который я получаю:

namenameArray
(
    [0] => 1
    [id] => 1
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_PSD_111
    [oldvalue] => test_PSD_111
    [4] => test_SPD_111
    [newvalue] => test_SPD_111
    [5] => 2010-03-24 11:42:26
    [changedone] => 2010-03-24 11:42:26
)

namenameArray
(
    [0] => 2
    [id] => 2
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_SPD_111
    [oldvalue] => test_SPD_111
    [4] => test_SD_111
    [newvalue] => test_SD_111
    [5] => 2010-03-24 11:44:22
    [changedone] => 2010-03-24 11:44:22
)

namenameArray
(
    [0] => 3
    [id] => 3
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_SD_111
    [oldvalue] => test_SD_111
    [4] => test_PSD_111
    [newvalue] => test_PSD_111
    [5] => 2010-03-24 11:46:28
    [changedone] => 2010-03-24 11:46:28
)

namenameArray
(
    [0] => 4
    [id] => 4
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_PSD_111
    [oldvalue] => test_PSD_111
    [4] => test_PD_111
    [newvalue] => test_PD_111
    [5] => 2010-03-24 11:47:30
    [changedone] => 2010-03-24 11:47:30
)

namenameArray
(
    [0] => 5
    [id] => 5
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_PD_111
    [oldvalue] => test_PD_111
    [4] => test_P_111
    [newvalue] => test_P_111
    [5] => 2010-03-24 11:49:25
    [changedone] => 2010-03-24 11:49:25
)



aliasaliasArray
(
    [0] => 1
    [id] => 1
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_PSD_111
    [oldvalue] => test_PSD_111
    [4] => test_SPD_111
    [newvalue] => test_SPD_111
    [5] => 2010-03-24 11:42:26
    [changedone] => 2010-03-24 11:42:26
)

aliasaliasArray
(
    [0] => 2
    [id] => 2
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_SPD_111
    [oldvalue] => test_SPD_111
    [4] => test_SD_111
    [newvalue] => test_SD_111
    [5] => 2010-03-24 11:44:22
    [changedone] => 2010-03-24 11:44:22
)

aliasaliasArray
(
    [0] => 3
    [id] => 3
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_SD_111
    [oldvalue] => test_SD_111
    [4] => test_PSD_111
    [newvalue] => test_PSD_111
    [5] => 2010-03-24 11:46:28
    [changedone] => 2010-03-24 11:46:28
)

aliasaliasArray
(
    [0] => 4
    [id] => 4
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_PSD_111
    [oldvalue] => test_PSD_111
    [4] => test_PD_111
    [newvalue] => test_PD_111
    [5] => 2010-03-24 11:47:30
    [changedone] => 2010-03-24 11:47:30
)

aliasaliasArray
(
    [0] => 5
    [id] => 5
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_PD_111
    [oldvalue] => test_PD_111
    [4] => test_P_111
    [newvalue] => test_P_111
    [5] => 2010-03-24 11:49:25
    [changedone] => 2010-03-24 11:49:25
)

То есть все пять значений из запроса отображаются на каждом отдельном объекте, получая значение true. Теперь вот что я хочу, чтобы после завершения каждого сравнения я хотел отображать окончательный результат запроса только один раз ... следовательно, конечный результат должен быть ..

Array
(
    [0] => 1
    [id] => 1
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_PSD_111
    [oldvalue] => test_PSD_111
    [4] => test_SPD_111
    [newvalue] => test_SPD_111
    [5] => 2010-03-24 11:42:26
    [changedone] => 2010-03-24 11:42:26
)

Array
(
    [0] => 2
    [id] => 2
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_SPD_111
    [oldvalue] => test_SPD_111
    [4] => test_SD_111
    [newvalue] => test_SD_111
    [5] => 2010-03-24 11:44:22
    [changedone] => 2010-03-24 11:44:22
)

Array
(
    [0] => 3
    [id] => 3
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_SD_111
    [oldvalue] => test_SD_111
    [4] => test_PSD_111
    [newvalue] => test_PSD_111
    [5] => 2010-03-24 11:46:28
    [changedone] => 2010-03-24 11:46:28
)

Array
(
    [0] => 4
    [id] => 4
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_PSD_111
    [oldvalue] => test_PSD_111
    [4] => test_PD_111
    [newvalue] => test_PD_111
    [5] => 2010-03-24 11:47:30
    [changedone] => 2010-03-24 11:47:30
)

Array
(
    [0] => 5
    [id] => 5
    [1] => 0
    [menuid] => 0
    [2] => name
    [field] => name
    [3] => test_PD_111
    [oldvalue] => test_PD_111
    [4] => test_P_111
    [newvalue] => test_P_111
    [5] => 2010-03-24 11:49:25
    [changedone] => 2010-03-24 11:49:25
)

Как это сделать .. Пожалуйста, помогите ....

1 Ответ

1 голос
/ 29 марта 2010

Вы можете установить ограничение для оператора MySQL

"ВЫБРАТЬ * ИЗ КОЛОНН ГДЕ TABLE_SCHEMA = '". $ Row3 [' TABLE_SCHEMA ']. "' И TABLE_NAME = '". $ Row3 [' TABLE_NAME ']. "' LIMIT 1"

тогда он вернет только один результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...