Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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变量不断重置_Php_Html_Sql_Forms - Fatal编程技术网

PHP变量不断重置

PHP变量不断重置,php,html,sql,forms,Php,Html,Sql,Forms,我正在尝试使用PHP使用HTML表单更新SQL表 我希望用户能够搜索VCR名称,并在while循环中显示其详细信息,然后出现一个更新表单,供用户在数据库中更改其详细信息 但是,每次我按下更新表单上的更新按钮时,保存新详细信息的变量都是空的,并且变得未定义 <?php require('connect.php'); ?> <?php require('headerPrivate.php'); ?> <?php require('session.php');?>

我正在尝试使用PHP使用HTML表单更新SQL表

我希望用户能够搜索VCR名称,并在while循环中显示其详细信息,然后出现一个更新表单,供用户在数据库中更改其详细信息

但是,每次我按下更新表单上的更新按钮时,保存新详细信息的变量都是空的,并且变得未定义

<?php require('connect.php'); ?>
<?php require('headerPrivate.php'); ?>
<?php require('session.php');?>


<?php
           //SEARCH PHP CODE
           //THIS WORKS FINE AND ALL THE DETAILS APPEAR
           if(isset($_POST["search"]))
           {

            //CREATE VARIABLES
            $username=$_SESSION['username'];
            echo "username: ".$username;
            echo '<br>';

            $vcrName=$_POST['name'];
            echo "VCR Name: ".$vcrName;  
            echo '<br>';
            echo '<br>';


            //SELECT * FROM PRODUCT
            $sql="SELECT * 
                    FROM product 
                    INNER JOIN user
                    ON product.owner_ID=user.user_ID
                    WHERE username='$username' AND name='$vcrName'";
            echo "SQL SELECT 1: ".$sql;  
            echo '<br>';
            echo '<br>';

            //$vcrName=$_POST['name'];


            $result = mysqli_query($con,$sql);

                echo '<div class="row">';


                    echo '<div class="col-xs-6 col-md-4">';
                        while ($row_all = mysqli_fetch_assoc($result)) 
                                {
                            echo '<form method="post">';
                                echo "<u>Title: ".$row_all["name"].'</u>';
                                echo '<br>';

                                echo '<small>';
                                    echo "  Price: ".$row_all["price"];
                                echo '</small>';
                                echo '<br>';

                                echo "<p><u>Short Description:</u> ".$row_all["short_descripton"]."</p>";
                                echo '<br>';

                                echo "<p><u>Long Description:</u> ".$row_all["long_description"]."</p>";
                                echo '<br>';

                                echo '<hr>';
                            echo '</form>';

                    echo '<div>';

                                }
                echo '</div>';
           }
?>

        <content>

            <!--SEARCH FOR VCR NAME-->
            <form class="form" method="post">

                <label for="name" class="sr-only">VCR Name</label>
                <input type="text" name="name" class="form-control" placeholder="VCR Name" required="" autofocus="" autocomplete="off">

                <button name="search" type="search" class="btn btn-success btn-block">Search</button>

            </form>
<?php

//This is where i run into issues. The old name in the variable $vcrName is empty and i need it for the update SQL statement.


          //UPDATE PHP
            if(isset($_POST["alter"]))
            {

                //CREATE A SESSION VARIABLE FOR THE CUSTOMER ID
                $customer_ID=$_SESSION['customer_ID'];
                echo "Customer ID: ".$customer_ID;
                echo '<br>';


                //CREATE VARIABLES
                $changeTitle=$_POST["titleChange"];

                $changesDescChange=$_POST["sDescChange"];

                $changelDescChange=$_POST["lDescChange"];

                $changepriceChange=$_POST["priceChange"];

                $vcrName=$_POST['name'];

                //UPDATE SQL
                $sql_update="UPDATE product
                            SET 
                            name='$changeTitle', 
                            short_descripton='$changesDescChange', 
                            long_description='$changelDescChange', 
                            price='$changepriceChange'
                            WHERE 
                            owner_ID='$customer_ID' AND name='$vcrName'";

                echo "SQL Update 0: ".$sql_update;
                echo '<br>';
                echo '<br>'; 


                echo "Updated Name: ".$changeTitle;
                echo '<br>';
                echo '<br>';


                echo "SQL Update 1: ".$sql_update;
                return $sql_update;
                echo '<br>';
                echo '<br>';

                 $result_update = mysqli_query($con,$sql_update);

                 if($result_update){
                     echo "Update Successful!";
                 }

                 else {
                     echo "Update Unsuccessful";
                 }

            }    

?>
                <!--UPDATE FORM-->
                <form class="form" method="post">

                    <label for="titleChange" class="sr-only">VCR Name</label>
                    <input type="text" name="titleChange" class="form-control" placeholder="VCR Name" required="" autofocus="" autocomplete="off">

                    <label for="sDescChange" class="sr-only">Short Description</label>
                    <input type="text" name="sDescChange" class="form-control" placeholder="Short Description" required="" autofocus="" autocomplete="off">

                    <label for="lDescChange" class="sr-only">Long Description</label>
                    <input type="text" name="lDescChange" class="form-control" placeholder="Long Description" required="" autofocus="" autocomplete="off">

                    <label for="priceChange" class="sr-only">Price</label>
                    <input type="text" name="priceChange" class="form-control" placeholder="Price" required="" autofocus="" autocomplete="off">

                    <button name="alter" type="submit">Change</button>

                </form>
        </content>
    </body>
</html>

录像机名称
搜寻
录像机名称
简短描述
长描述
价格
改变

您的PHP代码引用了一个不存在的POST变量:

$vcrName=$_POST['name'];
在更新表单中,需要将其作为隐藏值传递:

<input type="hidden" name="name" value="<?=htmlspecialchars($vcrName)?>"/>

这就是web编程的工作原理:来自浏览器的每个请求都是一个全新的请求,并且只包含浏览器发送的信息。使用隐藏的表单元素、cookie或会话(实际上是由cookie标识的文件,以便您可以发现相同的用户返回)。HTML“表单”中没有任何
元素。你在
$\u POST
@miken32中什么也得不到,是吗?我在两个示例中都看到了大量的
元素。第一个是一个,第二个是四个。@IMSoP我在看第一个表单,它只有一堆文本,没有意识到在第二个代码的底部还有另一个表单。