在 php 中处理单选按钮数组

发布于 2024-08-22 18:45:20 字数 2904 浏览 3 评论 0原文

我的一些 PHP 代码确实对我造成了很大的影响。为了简化,我有一个表,其中三列是外键(event_type、accommodation_type 和 public_user)。我正在动态创建一组单选按钮,并且已正确设置每个输入值的 ID 属性。

                        $result2 = mysql_query("SELECT * FROM event_type", $connection);
                        if(!$result2){
                            die("Database query failed: " . mysql_error());
                        }
                        $event = mysql_fetch_array($result2);   

                    echo "<input type='radio' name='event_type' value='";
                    echo $event["id"];
                    echo "' >&nbsp;&nbsp;";
                    echo $event['name'];
                    echo "</input><br /><br />";$result4 = mysql_query("SELECT * FROM accommodation_type", $connection);

                        if(!$result4){
                            die("Database query failed: " . mysql_error());
                        }
                        while($row = mysql_fetch_array($result4)){
                            if($row["id"] == 7 || $row["id"] == 8){
                            echo"<tr><td>";
                            echo $row["name"] ;
                            echo"</td><td>$";
                            echo $row["price"];
                            echo ".00</td><td>";
                            echo "<input type='radio' name='accommodation_type' value='";
           echo $row["id"];
                            echo "' />";
                            echo "</td></tr>";
                            }
                        }

我从查询中检索到了正确的 ID。因此,在使用 POST 提交表单后,我继续进行一些小的验证,并从我的帖子中准备名称,如下所示:

    $event_type = trim(mysql_prep($_POST['event_type']));
    $accommodation_type= trim(mysql_prep($_POST['accommodation_type']));
    $public_user = trim(mysql_prep($_POST['public_user']));
    $comments = trim(mysql_prep($_POST['comments']));
    $grand_total = trim(mysql_prep($_POST['grand_total']));

然后,我继续编写插入语句以将数据插入到相关表中。这需要如下两个查询。

        $query = "INSERT INTO event_registration (event_type, accommodation_type, public_user, comments, grand_total) VALUES ('{$event_type}','{$accommodation_type}','{$public_user}','{$comments}','{$grand_total}')";
        $query1 = "INSERT INTO additional_member (first_name, last_name, gender, age_group, public_user) VALUES ('{$first_name}','{$last_name}','{$gender}','{$age_group}','{$public_user}')";
        $result = mysql_query($query, $connection);
        $result1 = mysql_query($query1, $connection);

query1 按预期工作,但是第一个查询无法插入数据。它在我所在的行上显示未定义索引,

    $event_type = trim(mysql_prep($_POST['event_type']));
    $accommodation_type= trim(mysql_prep($_POST['accommodation_type']));

我不完全确定哪里出了问题。一切似乎都设置正确,表单中的数据只是拒绝保存。

有什么想法吗?

I have a bit of PHP code that is really taking a toll on me. To simplify, I have a table where three of the columns are foreign keys (event_type, accommodation_type and public_user). I am dynamically creating a set of radio buttons and I have set the ID attribute on each input value correctly.

                        $result2 = mysql_query("SELECT * FROM event_type", $connection);
                        if(!$result2){
                            die("Database query failed: " . mysql_error());
                        }
                        $event = mysql_fetch_array($result2);   

                    echo "<input type='radio' name='event_type' value='";
                    echo $event["id"];
                    echo "' >  ";
                    echo $event['name'];
                    echo "</input><br /><br />";$result4 = mysql_query("SELECT * FROM accommodation_type", $connection);

                        if(!$result4){
                            die("Database query failed: " . mysql_error());
                        }
                        while($row = mysql_fetch_array($result4)){
                            if($row["id"] == 7 || $row["id"] == 8){
                            echo"<tr><td>";
                            echo $row["name"] ;
                            echo"</td><td>$";
                            echo $row["price"];
                            echo ".00</td><td>";
                            echo "<input type='radio' name='accommodation_type' value='";
           echo $row["id"];
                            echo "' />";
                            echo "</td></tr>";
                            }
                        }

I retrieved the correct id from the query. Thus after submitting the form with POST, I go on to do some minor validation and prepped the names from my post as follows:

    $event_type = trim(mysql_prep($_POST['event_type']));
    $accommodation_type= trim(mysql_prep($_POST['accommodation_type']));
    $public_user = trim(mysql_prep($_POST['public_user']));
    $comments = trim(mysql_prep($_POST['comments']));
    $grand_total = trim(mysql_prep($_POST['grand_total']));

I then proceeded to write insert statements to insert the data into the relevant tables. This requires two queries as follows.

        $query = "INSERT INTO event_registration (event_type, accommodation_type, public_user, comments, grand_total) VALUES ('{$event_type}','{$accommodation_type}','{$public_user}','{$comments}','{$grand_total}')";
        $query1 = "INSERT INTO additional_member (first_name, last_name, gender, age_group, public_user) VALUES ('{$first_name}','{$last_name}','{$gender}','{$age_group}','{$public_user}')";
        $result = mysql_query($query, $connection);
        $result1 = mysql_query($query1, $connection);

The query1 works as expected, however the first query fails to insert the data. It says undefined index at the lines where I have

    $event_type = trim(mysql_prep($_POST['event_type']));
    $accommodation_type= trim(mysql_prep($_POST['accommodation_type']));

I am not entirely sure where things went wrong. Everything seems to be set up correctly and the data from the form just refuses to be saved.

Any ideas ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谁的年少不轻狂 2024-08-29 18:45:20

为什么不尝试从头开始检查代码,看看是否有任何语法错误,然后继续。

why not try reviewing the code from scratch and see if there are any syntax errors and then move on.

月亮邮递员 2024-08-29 18:45:20

您正在创建住宿类型

 echo "<input type='radio' name='accommodation_type' value='";
       echo $row["id"];

,但不在任何地方回显event_type。也尝试回显这一点:

 echo "<input type='radio' name='accommodation_type' value='";
       echo $row["id"];

 echo "<input type='radio' name='event_type' value='";
       echo $row["whatever"];

You are creating accommodation type

 echo "<input type='radio' name='accommodation_type' value='";
       echo $row["id"];

But not echoing event_type anywhere. Try echoing that too:

 echo "<input type='radio' name='accommodation_type' value='";
       echo $row["id"];

 echo "<input type='radio' name='event_type' value='";
       echo $row["whatever"];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文