如何在foreach循环中使用while循环?

问题描述 投票:0回答:1

问题:

我从每个循环的文本区域中检索行。但是我不能在while循环中使用它们。 while循环仅运行一次。我希望它针对文本区域中的所有行运行。但它仅显示最后一个B000number(B000575825)的描述。

如何解决此问题... ??

我的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>

    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>

</head>
<body>
    <form method="post" action="Select_description.php">
        <textarea class="form-control" name="text" rows="25" style="width: 150px;">
        </textarea>
        <br>
        <button type="submit" class="btn btn-primary">Data submit</button>
    </form>
</body>
</html>

$text = $_POST['text'];

$a = 0;
$b = 0;

foreach(explode("\n", $text) as $b000_number) {

    $a++;

    $query1 = "SELECT `description` FROM mat_index_items WHERE b000_number = '$b000_number'";
    $result1 = mysqli_query($conn, $query1);

    while ($row = mysqli_fetch_assoc($result1)) {
        $b++;
        $description= $row['description'];
        echo $description;
        echo "<br>";
    }
}

echo "Foreach: ".$a;
echo "<br>";
echo "While: ".$b;

结果:

php html
1个回答
0
投票

只需确保没有杂散的空格字符,请使用trim() ...

$b000_number = trim($b000_number);
© www.soinside.com 2019 - 2024. All rights reserved.