Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 退出while循环后获取变量_Php_Variables_While Loop - Fatal编程技术网

Php 退出while循环后获取变量

Php 退出while循环后获取变量,php,variables,while-loop,Php,Variables,While Loop,我正在开发一个验证系统,我的数据库中有几个MSG的值为0(这意味着它们还未被接受),因此我创建了一个页面,如果选中验证复选框,则将值更改为1 代码如下: <?php if (isset($_POST['valider'])) { $reponse1 = db_query('UPDATE messages SET value = 1 WHERE id =

我正在开发一个验证系统,我的数据库中有几个MSG的值为0(这意味着它们还未被接受),因此我创建了一个页面,如果选中验证复选框,则将值更改为1

代码如下:

<?php   
        if (isset($_POST['valider']))           
            {                   
                $reponse1 = db_query('UPDATE messages SET value = 1 WHERE id = ?', array($donneesmsg['id']));
                echo "NSF validée";                 
            }       
        if (isset($_POST['delete']))            
            {                   
                $reponse1 = db_query('DELETE FROM messages WHERE id = ?', array($donneesmsg['id']));                    
                echo "NSF supprimée";                   
            }

$reponse = db_query('SELECT * FROM messages WHERE value = 0');
while ($donneesmsg = $reponse->fetch()) {

?>

<h5><?php echo $donneesmsg['Pseudo']; ?></h5>

<p class="text-center text-align"><?php echo $donneesmsg['Message']; ?></p>

<form class="form-inline" method="post" action="index.php?page=changeto1">

            <label class="checkbox">
            <input type="checkbox" name="valider" value="1">
            Valider
            </label>


            <label class="checkbox">
            <input type="checkbox" name="delete">
            Supprimer
            </label>

            <input type="text" name="id" value="<?php echo $donneesmsg['id']; ?>">




<?php

}

?>

<br>
<br>

<button type="submit" class="btn">Envoyer</button>
</form>

瓦利德 供给者
你把线圈放错地方了。按照您的方式循环,每个复选框都有一个起始表单标记。获取多个不同复选框的另一个好方法是将其设置为数组。要执行这些操作,它将如下所示:

<form class="form-inline" method="post" action="index.php?page=changeto1">    

    <?php 
        $reponse = db_query('SELECT * FROM messages WHERE value = 0');
        while ($donneesmsg = $reponse->fetch()) :
    ?>

        <h5><?php echo $donneesmsg['Pseudo']; ?></h5>

        <p class="text-center text-align"><?php echo $donneesmsg['Message']; ?></p>

        <label class="checkbox">
            <input type="checkbox" name="valider[<?php echo $donneesmsg['id']; ?>]" value="1">
            Valider
        </label>

        <label class="checkbox">
            <input type="checkbox" name="delete[<?php echo $donneesmsg['id']; ?>]">
            Supprimer
        </label>

    <?php endwhile; ?>

    <br>
    <br>

    <button type="submit" class="btn">Envoyer</button>
</form>


这是我应该怎么设置的吗

<?php

$idsToValidate = array_keys($_POST['valider']);
$idsToDelete   = array_keys($_POST['delete']);

        if (isset($idsToValidate))

            {

                $reponse1 = db_query('UPDATE messages SET value = 1 WHERE id = ?', array($idsToValidate['id']));

                echo "<center>NSF validée</center>";

            }



        if (isset($idsToDelete))

            {

                $reponse1 = db_query('DELETE FROM messages WHERE id = ?', array($idsToDelete['id']));

                echo "<center>NSF supprimée</center>";

            }

?>


<form class="form-inline" method="post" action="index.php?page=changeto1">    

    <?php 
        $reponse = db_query('SELECT * FROM messages WHERE value = 0');
        while ($donneesmsg = $reponse->fetch()) :
    ?>

        <h5><?php echo $donneesmsg['Pseudo']; ?></h5>

        <p class="text-center text-align"><?php echo $donneesmsg['Message']; ?></p>

        <label class="checkbox">
            <input type="checkbox" name="valider[<?php echo $donneesmsg['id']; ?>]" value="1">
            Valider
        </label>

        <label class="checkbox">
            <input type="checkbox" name="delete[<?php echo $donneesmsg['id']; ?>]">
            Supprimer
        </label>

    <?php endwhile; ?>

    <br>
    <br>

    <button type="submit" class="btn">Envoyer</button>
</form>


你试过什么?想想看,您的变量就在那里,您可以在循环内使用它做任何事情,包括将它保存在循环外的辅助数组中以供以后使用。
<?php

$idsToValidate = array_keys($_POST['valider']);
$idsToDelete   = array_keys($_POST['delete']);

        if (isset($idsToValidate))

            {

                $reponse1 = db_query('UPDATE messages SET value = 1 WHERE id = ?', array($idsToValidate['id']));

                echo "<center>NSF validée</center>";

            }



        if (isset($idsToDelete))

            {

                $reponse1 = db_query('DELETE FROM messages WHERE id = ?', array($idsToDelete['id']));

                echo "<center>NSF supprimée</center>";

            }

?>


<form class="form-inline" method="post" action="index.php?page=changeto1">    

    <?php 
        $reponse = db_query('SELECT * FROM messages WHERE value = 0');
        while ($donneesmsg = $reponse->fetch()) :
    ?>

        <h5><?php echo $donneesmsg['Pseudo']; ?></h5>

        <p class="text-center text-align"><?php echo $donneesmsg['Message']; ?></p>

        <label class="checkbox">
            <input type="checkbox" name="valider[<?php echo $donneesmsg['id']; ?>]" value="1">
            Valider
        </label>

        <label class="checkbox">
            <input type="checkbox" name="delete[<?php echo $donneesmsg['id']; ?>]">
            Supprimer
        </label>

    <?php endwhile; ?>

    <br>
    <br>

    <button type="submit" class="btn">Envoyer</button>
</form>