根据查询结果执行

时间:2019-02-15 11:17:52

标签: php sql

我得到了用PHP编写的代码块,它使用与Oracle DB的数据库连接,我需要对数据运行查询,并且第一个查询的结果应该是下一个查询的输入,并且应该在一个循环内,如果我没有从下一个查询中得到更多结果,我应该退出循环,此刻我正在使用整数并通过最大5次循环,因为我知道这可能会收到最大的结果,但是这是动态的。

我的实际代码如下:

这是我输入数据时的形式

onFocus = () => {
  // do something
}

render() {
  <TextInput onFocus={onFocus} />
}

php代码,我在运行循环时验证数据并使用函数对DB执行查询。

<form name="identificare_cusut" action="test_hlkz.php" method="post">
   Scanati piesa: <input type="text" name="piesa"><br>
   <input type="submit" value="Cautare">
</form>

我不想使用像 if (isset($_POST['piesa']) && strlen($_POST['piesa'])>0) { $barcode = $_POST['piesa']; } if (isset($barcode)) { echo "<tr>"; echo "<th>".$barcode."</th>"; echo "</tr>"; array_push($trasabilitate_array, $barcode); $x=1; do { $arr=get_query_results_hlkz($barcode); if ($arr) { foreach ($arr as $row) { echo "<tr>"; echo "<th>" .$row[0]. "</th>"; echo "</tr>"; $barcode=$row[0]; array_push($trasabilitate_array, $row[0]); } } $x++; } while ($x <=5); }

这样的静态解决方案

有任何想法如何以其他方式实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

应该做到这一点。因此,如果下一个$ arr为空,它将退出循环。

<?php  
    if (isset($_POST['piesa']) && strlen($_POST['piesa'])>0) {
        $barcode = $_POST['piesa'];
    }
    if (isset($barcode)) {

        echo "<tr>";
            echo "<th>".$barcode."</th>";
        echo "</tr>";

        array_push($trasabilitate_array, $barcode);
        $x=1;
        do {
            $arr=get_query_results_hlkz($barcode);
            if ($arr != null) {
                foreach ($arr as $row) {
                        if ($arr == null) {
                            $x = 6;
                        }
                        if($x < 6){
                            echo "<tr>";
                                echo  "<th>" .$row[0]. "</th>";
                            echo "</tr>";

                            $barcode=$row[0];

                            array_push($trasabilitate_array, $row[0]);
                        }
                    }
                $x++;
            }
        } while ($x <=5);
    }
?>