我得到了用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);
}
有任何想法如何以其他方式实现这一目标吗?
答案 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);
}
?>