Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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_Mysqli - Fatal编程技术网

Php 删除按钮不起作用

Php 删除按钮不起作用,php,mysqli,Php,Mysqli,我创建了一个直接提交到数据库中的示例,其中数据库中有一个名为validation的表。表单提交后,我从数据库中检索提交的数据。在将数据从数据库检索到我创建并命名为Receive.php的页面时,我没有遇到任何问题。我创建了一个Do-While循环,这样每一行数据都有一个delete按钮和一个Edit按钮。我面临的问题是我的delete按钮似乎不起作用,我还想只使用PhP使其工作,因此不会使用JavaScript或jquery等。我的代码如下: . . . . . 我还创建了一个隐藏

我创建了一个直接提交到数据库中的示例,其中数据库中有一个名为validation的表。表单提交后,我从数据库中检索提交的数据。在将数据从数据库检索到我创建并命名为Receive.php的页面时,我没有遇到任何问题。我创建了一个Do-While循环,这样每一行数据都有一个delete按钮和一个Edit按钮。我面临的问题是我的delete按钮似乎不起作用,我还想只使用PhP使其工作,因此不会使用JavaScript或jquery等。我的代码如下:


.
.
.
. 
.

我还创建了一个隐藏的输入类型,它将向数据库提交或发布一个Id,该Id与数据库的Id相对应。。 任何帮助都是非常重要的。 我将它包含的完整代码发布到页面上,一个是***index.php*,这是主表单所在的位置,另一个是receive.php,因此在提交到数据库后,此页面是最终用户从数据库检索数据的位置**

INDEX.PHP


我只能假设您已经发布了部分代码,因为在提交输入标记周围没有
表单
标记

假设您确实有一个表单标记,请检查您是否已将
表单操作
属性设置为
get
。实际上,通过
GET
标题发送提交数据是一件非常糟糕的事情

如果你忘了把你的
表单
标签放进去,那就是原因

更新:

您正在尝试从不存在的
GET
super-global中提取

if(isset($_POST['remove']))
根据整个文件更新答案

<?php 

include 'sql.php'; 
$query = "SELECT * FROM validation";
mysqli_query($con , $query);
$result = mysqli_query($con , $query);
$tottals = mysqli_num_rows($result);

if (isset($_POST['del'])){ 
    $id = mysqli_real_escape_string($_POST['ID']);  // COMMENT number 2 ( I know theyre out of order but it was easier to explain this way around )
    $query1 = "DELETE FROM validation WHERE ID = '$id' "; 
    $results = mysqli_query($con , $query1); 
}
?>

<div id="css">
    <form >
        <table width="80%" border="0" cellpadding="2" cellspacing="2" > 
            <caption><h2>Personal Details of Customers</h2></caption> 
            <tr class="white"> 
                <td bgcolor="#330033">&nbsp;  </td> 
                <td bgcolor="#330033"> Full Name </td>
                <td bgcolor="#330033"> Email Address </td>
                <td bgcolor="#330033"> Website </td>
                <td bgcolor="#330033"> Comment </td> 
                <td bgcolor="#330033"> Time </td>   
            </tr>
            <?php 
            while ($rows= mysqli_fetch_assoc($result)) // COMMENT number 1
            {
                // COMMENT 5 - start of insert table row
                echo "
                <tr> 
                    <td bgcolor='#FFFFCC'><input type='radio' name='ID' value='$rows[ID]'/></td>   <!-- COMMENT number 3 -->
                    <td bgcolor='#FFFFCC'>$rows[ID]</td> 
                    <td bgcolor='#FFFFCC'>$rows[Name]</td> 
                    <td bgcolor='#FFFFCC'>$rows[Email]</td>
                    <td bgcolor='#FFFFCC'>$rows[Website]</td> 
                    <td bgcolor='#FFFFCC'>$rows[Comment]</td> 
                    <td bgcolor='#FFFFCC'>$rows[Time]</td>  
                    <td>&nbsp; </td>
                    <td> <input type='submit' name='del' value='Delete' /> &nbsp; <input type='button' name='edit' value='Edit'  /> </td>
                </tr>
````            "; // end of insert table row
            }?>  
        </table>
    </form>
</div>
好的,有几件事(我在代码中添加了带有项目符号编号的注释,以帮助您看到哪里出了问题)

  • 由于已经运行了查询以从页面顶部的数据库中获取记录,因此循环中不需要$i++。您只需依靠mysqli_fetch_assoc
  • 即可为您完成这项工作

  • 除了登录按钮之外,您实际上没有通过表单向php脚本发送任何数据。我在这里所做的只是使用一个单选按钮,可以选择它来通知您的脚本您正在谈论的记录。因为它使用的是数据库表的实际
    id
    ,所以应该是准确的

  • Ive已清除进入查询的$\u POST数据。有很多更好的方法可以做到这一点,但在你目前所做的范围内也可以做到

  • 我还整理了你的代码。确保在工作时始终正确缩进。这将使调试变得容易得多。学习如何做到这一点是当务之急

  • 我还使用了“神奇的引号”例如“回送表格。这样你就可以引用变量名而无需停止。启动你的html。它只是回送出全部内容,并在需要的地方插入变量名

  • 我没有测试过这个,所以我可能有一个我看不到的打字错误。时间很晚了,我今天盯着电脑看了10个小时,但它看起来很接近

    代码

    <?php 
    
    include 'sql.php'; 
    $query = "SELECT * FROM validation";
    mysqli_query($con , $query);
    $result = mysqli_query($con , $query);
    $tottals = mysqli_num_rows($result);
    
    if (isset($_POST['del'])){ 
        $id = mysqli_real_escape_string($_POST['ID']);  // COMMENT number 2 ( I know theyre out of order but it was easier to explain this way around )
        $query1 = "DELETE FROM validation WHERE ID = '$id' "; 
        $results = mysqli_query($con , $query1); 
    }
    ?>
    
    <div id="css">
        <form >
            <table width="80%" border="0" cellpadding="2" cellspacing="2" > 
                <caption><h2>Personal Details of Customers</h2></caption> 
                <tr class="white"> 
                    <td bgcolor="#330033">&nbsp;  </td> 
                    <td bgcolor="#330033"> Full Name </td>
                    <td bgcolor="#330033"> Email Address </td>
                    <td bgcolor="#330033"> Website </td>
                    <td bgcolor="#330033"> Comment </td> 
                    <td bgcolor="#330033"> Time </td>   
                </tr>
                <?php 
                while ($rows= mysqli_fetch_assoc($result)) // COMMENT number 1
                {
                    // COMMENT 5 - start of insert table row
                    echo "
                    <tr> 
                        <td bgcolor='#FFFFCC'><input type='radio' name='ID' value='$rows[ID]'/></td>   <!-- COMMENT number 3 -->
                        <td bgcolor='#FFFFCC'>$rows[ID]</td> 
                        <td bgcolor='#FFFFCC'>$rows[Name]</td> 
                        <td bgcolor='#FFFFCC'>$rows[Email]</td>
                        <td bgcolor='#FFFFCC'>$rows[Website]</td> 
                        <td bgcolor='#FFFFCC'>$rows[Comment]</td> 
                        <td bgcolor='#FFFFCC'>$rows[Time]</td>  
                        <td>&nbsp; </td>
                        <td> <input type='submit' name='del' value='Delete' /> &nbsp; <input type='button' name='edit' value='Edit'  /> </td>
                    </tr>
    ````            "; // end of insert table row
                }?>  
            </table>
        </form>
    </div>
    

    请不要使用不相关的标记。与您的问题无关。首先,您使用了两次
    mysqli\u query
    。另外,您的表单标记在哪里?除此之外,我的查询没有问题??您尝试过它吗?因为与循环相关的所有行中都有语法错误。请继续获取此通知:解析错误:语法错误,意外的“bgcolor”(T_字符串),在C:\xampp\htdocs\ak\receive.php的第60行应为“,”或“;”,如果您复制了该文件,则没有第60I行复制了该文件,现在是第42行,因此在echo“哦,我明白为什么了。我在$row[]调用中留下了“”
    if(isset($_POST['remove']))
    
    <?php 
    
    include 'sql.php'; 
    $query = "SELECT * FROM validation";
    mysqli_query($con , $query);
    $result = mysqli_query($con , $query);
    $tottals = mysqli_num_rows($result);
    
    if (isset($_POST['del'])){ 
        $id = mysqli_real_escape_string($_POST['ID']);  // COMMENT number 2 ( I know theyre out of order but it was easier to explain this way around )
        $query1 = "DELETE FROM validation WHERE ID = '$id' "; 
        $results = mysqli_query($con , $query1); 
    }
    ?>
    
    <div id="css">
        <form >
            <table width="80%" border="0" cellpadding="2" cellspacing="2" > 
                <caption><h2>Personal Details of Customers</h2></caption> 
                <tr class="white"> 
                    <td bgcolor="#330033">&nbsp;  </td> 
                    <td bgcolor="#330033"> Full Name </td>
                    <td bgcolor="#330033"> Email Address </td>
                    <td bgcolor="#330033"> Website </td>
                    <td bgcolor="#330033"> Comment </td> 
                    <td bgcolor="#330033"> Time </td>   
                </tr>
                <?php 
                while ($rows= mysqli_fetch_assoc($result)) // COMMENT number 1
                {
                    // COMMENT 5 - start of insert table row
                    echo "
                    <tr> 
                        <td bgcolor='#FFFFCC'><input type='radio' name='ID' value='$rows[ID]'/></td>   <!-- COMMENT number 3 -->
                        <td bgcolor='#FFFFCC'>$rows[ID]</td> 
                        <td bgcolor='#FFFFCC'>$rows[Name]</td> 
                        <td bgcolor='#FFFFCC'>$rows[Email]</td>
                        <td bgcolor='#FFFFCC'>$rows[Website]</td> 
                        <td bgcolor='#FFFFCC'>$rows[Comment]</td> 
                        <td bgcolor='#FFFFCC'>$rows[Time]</td>  
                        <td>&nbsp; </td>
                        <td> <input type='submit' name='del' value='Delete' /> &nbsp; <input type='button' name='edit' value='Edit'  /> </td>
                    </tr>
    ````            "; // end of insert table row
                }?>  
            </table>
        </form>
    </div>