Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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 如何确定是否按下了ID未知的按钮_Php_Mysql - Fatal编程技术网

Php 如何确定是否按下了ID未知的按钮

Php 如何确定是否按下了ID未知的按钮,php,mysql,Php,Mysql,有人能帮我写以下代码吗 $query = "SELECT * FROM table ORDER BY dateTime"; $sqldata=mysqli_query($conn,$query) or die( 'Error Retrieving data'); echo"<form>"; $var=0; while($row=mysqli_fetch_array($sqldata, MYSQLI_ASSOC)) { var++

有人能帮我写以下代码吗

$query = "SELECT * FROM table ORDER BY dateTime";
$sqldata=mysqli_query($conn,$query) or die( 'Error Retrieving data');
echo"<form>";
$var=0;
        while($row=mysqli_fetch_array($sqldata, MYSQLI_ASSOC))
        {
            var++; 
            echo"<fieldset>
            <legend>"; echo $row['Name']; echo"</legend>";
                echo"<table style='width:100%'>                     
                    <tr>
                        <td>Location</td>
                        <td>"; 
                        echo $row['EventLocation']; echo"</td> 
                    </tr>
                    <tr>
                        <td>Subject</td>
                        <td>"; 
                        echo $row['eventSubject']; echo"</td>  

                    </tr>
                    <tr>
                        <td>Description</td>
                        <td>"; 
                        echo $row['EventDescription']; echo"</td> 

                    </tr>
                    <tr>
                        <td>Time</td>
                        <td>"; 
                        echo $row['dateTime']; echo"</td> 
                    </tr>                                                           
            </table> <br>
            <input type='submit' class='btn btn-info' value='Sign Me Up!' name='btnSignUp'></input>           
        </fieldset> <br>";
        }

echo"</form>";
$query=“按日期时间从表顺序选择*”;
$sqldata=mysqli_query($conn,$query)或die('Error Retrieving data');
回声“;
$var=0;
而($row=mysqli\u fetch\u数组($sqldata,mysqli\u ASSOC))
{
var++;
回声“
“echo$行['Name'];echo”“;
回声“
位置
"; 
echo$row['EventLocation'];echo“
主题
"; 
echo$row['eventSubject'];echo“
描述
"; 
echo$row['EventDescription'];echo“
时间
"; 
echo$row['dateTime'];echo“


“; } 回声“;
当我在while循环中循环时,将为表中的每个记录创建一个按钮,然后单击该按钮时,用户将注册一个事件。但是,我不知道如何检查已单击的按钮?我通常是这样做的

    if(isset($_POST['btnSignUp']))
{
    $insert="INSERT INTO tblEventGuests (fkEvent, fkUser) VALUES ('". $row['pkEvent'] . "', '".$_SESSION['user']."'";

    if ($conn->query($insert) === TRUE) 
    {
        echo "You have successfully signed up to this event";
    } 
    else 
    {
        echo "Error: " . $insert . "<br>" . $conn->error;
    }

    $conn->close();
}
if(isset($\u POST['btnSignUp']))
{
$insert=“插入到tblEventGuests(fkEvent,fkUser)值(“$row['pkEvent']”,“$\u会话['user']”);
如果($conn->query($insert)==TRUE)
{
echo“您已成功注册此活动”;
} 
其他的
{
回显“错误:”.$insert.“
”$conn->错误; } $conn->close(); }
但因为我不确定按钮的名称或有多少事件(编码时)我不知道如何去做我需要做的事情。有人有什么建议吗?甚至还有其他方法吗?谢谢!

使用
,而不是
。这将允许您为按钮指定一个与值不同的标签,该值将指示他们单击的提交按钮

<button type='submit' name='btnSignup' value='{$row['eventId']}'>Sign me up!</button>
给我注册!
然后在处理表单的PHP中,您可以使用
$\u POST['btnSignup']
的值来了解他们注册了哪个事件。

而不是
,使用
。这将允许您为按钮指定一个不同于该值的标签,该值将指示他们单击的提交按钮

<button type='submit' name='btnSignup' value='{$row['eventId']}'>Sign me up!</button>
给我注册!
然后在处理表单的PHP中,可以使用
$\u POST['btnSignup']的值
以了解他们注册的事件。

在循环内而不是在循环外创建表单。这样,每个表单将单独包含服务器所需的信息,而不是将所有内容发送到服务器并试图找出实际选择的信息子集

while($row=mysqli_fetch_array($sqldata, MYSQLI_ASSOC))
{
    //...
    echo "<form method='POST'>
          <table style='width:100%'>                     
            <tr>
              <td>Location</td>
              <td>"; 
    echo $row['EventLocation'];
    echo "    </td> 
            </tr>
            <!--- etc... --->
          </table><br>
        </form>
        <input type='submit' class='btn btn-info' value='Sign Me Up!' name='btnSignUp'></input>           
    </fieldset> <br>";
}
while($row=mysqli\u fetch\u数组($sqldata,mysqli\u ASSOC))
{
//...
回声“
位置
"; 
echo$row['EventLocation'];
回声“


“; }

编辑:如中所述,如果希望值位于
$\u POST
集合中,则还需要在表单上定义
方法
属性。请注意上面更新的代码。

在循环内而不是在循环外创建表单。这样,每个表单都将单独包含信息选择服务器所需的信息,而不是将所有信息发送到服务器,并尝试找出实际选择的信息子集

while($row=mysqli_fetch_array($sqldata, MYSQLI_ASSOC))
{
    //...
    echo "<form method='POST'>
          <table style='width:100%'>                     
            <tr>
              <td>Location</td>
              <td>"; 
    echo $row['EventLocation'];
    echo "    </td> 
            </tr>
            <!--- etc... --->
          </table><br>
        </form>
        <input type='submit' class='btn btn-info' value='Sign Me Up!' name='btnSignUp'></input>           
    </fieldset> <br>";
}
while($row=mysqli\u fetch\u数组($sqldata,mysqli\u ASSOC))
{
//...
回声“
位置
"; 
echo$row['EventLocation'];
回声“


“; }


编辑:如中所述,如果希望值位于
$\u POST
集合中,则还需要在表单上定义
方法
属性。请注意上面更新的代码。

当创建按钮时,创建一个隐藏的表单元素,其中包含该按钮特定的数据。首先l、
如果没有隐含POST,则默认为GET方法,并且您使用的是POST数组,这将非常失败且无提示。因此,您的查询将永远不会发生。@JayBlanchard将提交所有隐藏字段,那么这将如何指示单击了哪个按钮?Drat@Barmar,我以为每行都有一个表单。现在我可以看到我不正确。当OP说“将为我表中的每条记录创建一个按钮”我做了一些假设。甚至不知道会话是否已启动。可能与此无关。当您创建按钮时,使用按钮创建一个隐藏的表单元素,其中包含该按钮特定的数据。首先,
默认为GET方法,如果不暗示POST,并且您使用的是POST数组,则会失败,而且会失败得很惨。所以你的查询永远不会发生。@JayBlanchard所有隐藏字段都将被提交,那么这将如何表明单击了哪个按钮呢?Drat@Barmar,我以为每行都有一个表单。我现在可以看出我是错的。当OP说“将为我表中的每条记录创建一个按钮”时我做了一些假设。甚至不知道会议是否已经开始。可能与此无关。