Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.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中更新sql查询后更新表单值_Php_Mysql_Forms - Fatal编程技术网

在php中更新sql查询后更新表单值

在php中更新sql查询后更新表单值,php,mysql,forms,Php,Mysql,Forms,嗨,我的问题是,在使用查询更新数据库之后,表单中的值不会改变,即使代码底部的相同值(例如team1)给了我更新值。要更新表单中的值,我必须刷新页面 <form action="" method="post" id="form-partite"> Team Home: <input type="text" name="team1" value="<?php echo $team1 ?>"> Team Away: <input type="t

嗨,我的问题是,在使用查询更新数据库之后,表单中的值不会改变,即使代码底部的相同值(例如team1)给了我更新值。要更新表单中的值,我必须刷新页面

<form action="" method="post" id="form-partite">
    Team Home: <input type="text" name="team1" value="<?php echo $team1 ?>">
    Team Away: <input type="text" name="team2" value="<?php echo $team2 ?>">
    <input type="submit" name="submit" id="submit">
</form>
<?php 
    if (isset($_POST['submit'])) {
        if ($_POST['team1'] == "" || $_POST['team2'] == ""){
            echo "Devi inserire entrambe le squadre";
        } else {
            $team1 = $_POST['team1'];
            $team2 = $_POST['team2'];
            $data = array(
                'team1' => $team1,
                'team2' => $team2
            );
            global $wpdb;
            $wpdb -> update( wp_partite, $data, array( id => '1' ) );
            global $wpdb;
            $partita = $wpdb -> get_row("SELECT team1, team2 FROM wp_partite");
            $team1 = $partita -> team1;
            $team2 = $partita -> team2;
            echo "Partita inserita: " . $team1 . " vs " . $team2 . "!";
            unset($_POST);
        }
        }

不要在PHP之前回显表单,而是在PHP之后执行:

<?php 
    if (isset($_POST['submit'])) {
        if ($_POST['team1'] == "" || $_POST['team2'] == ""){
            echo "Devi inserire entrambe le squadre";
        } else {
            $team1 = $_POST['team1'];
            $team2 = $_POST['team2'];
            $data = array(
                'team1' => $team1,
                'team2' => $team2
            );
            global $wpdb;
            $wpdb -> update( wp_partite, $data, array( id => '1' ) );
            global $wpdb;
            $partita = $wpdb -> get_row("SELECT team1, team2 FROM wp_partite");
            $team1 = $partita -> team1;
            $team2 = $partita -> team2;
            echo "Partita inserita: " . $team1 . " vs " . $team2 . "!";
            unset($_POST);
        }
    }
?>
<form action="" method="post" id="form-partite">
    Team Home: <input type="text" name="team1" value="<?php echo $team1 ?>">
    Team Away: <input type="text" name="team2" value="<?php echo $team2 ?>">
    <input type="submit" name="submit" id="submit">
</form>

正如Luis所指出的,在使用PHP变量之前,请始终调用PHP。 也不要取消设置$\u POST,因为它是一个全局变量,不能取消设置。 取消设置全局变量是一种糟糕的做法。避免它

此外,在检查$_POST['submit']之前,请定义$team1和$team2,以便它们始终可用,并且不会给出未定义的变量错误

使用trim,以避免用户在表单中填充空格

不过,您可以在$\u POST中取消设置team1和team2偏移量

代码如下:

    <?php 

    $team1 = $team2 = ''; // ADD THIS LINE, else form will show undefined variable error.

    if (isset($_POST['submit'])) {
        if (trim($_POST['team1']) == "" || trim($_POST['team2']) == ""){  // Modified
            echo "Devi inserire entrambe le squadre";
        } else {
            $data = array(
                'team1' => $_POST['team1'], // Modified
                'team2' => $_POST['team2'] // Modified
            );
            global $wpdb;
            $wpdb -> update( wp_partite, $data, array( id => '1' ) );
            global $wpdb;
            $partita = $wpdb -> get_row("SELECT team1, team2 FROM wp_partite");
            $team1 = $partita -> team1;
            $team2 = $partita -> team2;
            echo "Partita inserita: " . $team1 . " vs " . $team2 . "!";
            unset($_POST['team1']); // Modified
            unset($_POST['team2']); // Modified
        }
    }
?>
<form action="" method="post" id="form-partite">
    Team Home: <input type="text" name="team1" value="<?php echo $team1 ?>">
    Team Away: <input type="text" name="team2" value="<?php echo $team2 ?>">
    <input type="submit" name="submit" id="submit">
</form>

谢谢你的解释!不客气。!如果答案解决了你的问题,请接受。谢谢不客气!请将问题设置为已回答@stefanombari