PHP从大型SQL结果集中检索变量

时间:2016-03-20 00:46:27

标签: php sql

我一直致力于自己的PHP项目。我遇到了障碍。我正在尝试检索数据库的结果并打印出每个结果集的表单。

然后我希望与一个特定的结果进行交互,或者将其删除或者将其传递给函数等。

Heres是我目前的代码:

    <?php
                while($row = mysqli_fetch_array($result)){
                echo '<div id="post">'; ?>
                <form action="" method="post">
            <?php
                echo "<font size=4>".$row['post']."<br>"; 
                echo "posted by : ".$row['username']."<br>";
                $id = $row['p_id']; ?>
                <input type="submit" name="choice" value="Y">
                <input type="submit" name="choice" value="N">
                </form>
                <br>
                </div>
            }
    <?php
    if($_POST['choice']=="Y"){
     // progress
     functionA();
    }
    else if($_POST['choice']=="N"){
     // delete or remove
     functionB();
    }
 ?>

所以我的目标是点击Y进行特定结果,或者N点击删除/删除结果。 但是,目前通过单击任一按钮,所有结果都会被删除或进展。我知道应该使用id来区分帖子,但我似乎无法让它发挥作用。按下按钮后,它会将所有结果传递给任一功能。

2 个答案:

答案 0 :(得分:1)

首先,我想你想知道要删除的记录。因此,在表单中添加一个输入:

<input type="hidden" name="id" value="<?php echo $row['p_id']; ?>">

然后,在您的脚本中,调用:

if( $_POST['choice'] == "Y" )
{
    // progress
    functionA( $_POST['id'] );
}
elseif( $_POST['choice']=="N" )
{
    // delete or remove
    functionB( $_POST['id'] );
}

其他问题:如何使用数据库连接inside the functions?假设您的mysqli连接名为$conn,请以这种方式调用函数:

functionA( $_POST['id'], $conn );

附注:第一个进程$_POST值,然后检索数据库记录并打印出来。

附注2:看看prepared statement

答案 1 :(得分:0)

为值中包含id的每个项目使用两个不同的<input type="radio">,让用户选择要删除的内容和要处理的内容。

因此对于标识为1的项目,输出的HTML将如下所示:

<input type="radio" name="items[1]" value="delete"><input type="radio" name="items[1]" value="process">

name强制项目转到_POST作为数组,其中ids为键,所选操作为其值。

示例html:https://jsfiddle.net/gu1gkwod/