【问题标题】:PHP Session Getting CorrectValuePHP 会话获取正确值
【发布时间】:2013-11-04 15:58:55
【问题描述】:

问题:如何解决我在处理会话时遇到的问题,因为它返回了不正确的值。 情况:我在表中的这个会话变量上有问题。我使用 while 循环将数据从数据库添加到表中。这是我的代码:

                    <form action="edit2.php" method="get">
                            <?php

                    $link = mysql_connect("localhost", "root", "root");
                    mysql_select_db("ispot", $link);

                    $result4 = mysql_query("SELECT * FROM user_ispot", $link);
                    $num_rows = mysql_num_rows($result4);


                $result = mysqli_query($con,"SELECT * FROM complaints");

                    echo "<table border='1'>
                    <tr>
                    <th>Id Number</th>
                    <th>Category</th>
                    <th>Problem</th>
                    <th>Date Reported</th>
                    <th>Complaint ID </th>
                    <th>Action</th>
                    </tr>";

            while($row = mysqli_fetch_array($result))
            {

                echo "<tr>";


                echo "<td name=id_num>" . $row['id_number'] . "</td>";
                $_SESSION['favcolor'] = "$row[id_number]";
                echo "<td name=remarks>" . $row['remarks'] . "</td>";
                echo "<td name=status>" . $row['status'] . "</td>";
                echo "<td name=date>" . $row['date_reported'] . "</td>";
                echo "<td>" . "<INPUT TYPE = text Name = cid VALUE = " . $row['complaint_id'] . ">" . "</td>";
                echo "<td>" . "<INPUT TYPE = Submit Name = Submit1 VALUE =Edit>" . "</td>";
                echo "</tr>";

            }
                    echo "</table>" ;?>

它看起来像这样:

如您所见,有一个编辑按钮,我可以在其中编辑表格中的特定行。 当我按下编辑按钮时,这将显示:

注意到用户 ID 错误,我该如何解决?因为这里发布的用户 id 是最后插入到表中的 user_id。

这是第二张图片的代码:

<b>Date:</b> <input type='text' name='today' placeholder='<?php echo $today ?>' disabled='disabled'> <br><br>
    <b>User ID:</b> <input type='text' disabled='disables' name='userid' placeholder='<?php

                //$comid = $_GET["cid"];
                //echo $userid;
                echo $_SESSION['userid'];

                //$result = mysqli_query($con,"SELECT * FROM complaints WHERE id = XXX");
                //$row = mysqli_fetch_assoc($result);
                //print_r($row);


                    //$result2 = mysql_query("SELECT * FROM complaints WHERE complaint_id = '$comid'", $link);
                    //$result2 = mysql_query("SELECT * FROM complaints", $link);
                    //while($row = mysql_fetch_assoc($result2))
                    //{
                    //echo $row['id_number'];

                    //}


            ?>'></br><br>

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 不要使用会话,它完全不适合你想做的事情。将他们单击编辑按钮的行的相应 ID 发送到服务器。
  • 您在循环的每次迭代中设置 SESSION 变量。因此,当循环终止时,该值将设置为最终迭代的值。
  • @AnthonyGrist 先生,我也尝试不使用会话,但仍然是同样的问题。 .
  • @Dieter 谢谢。它有效!

标签: php mysql sql session post


【解决方案1】:

我用链接替换了按钮,在点击编辑时用它来传递值,用 get 捕获值,它对我有用。

在edit.php中

echo "<td> <a href = 'edit2.php?id=$num_id'>Edit</a></td>";

在edit2.php中

    $id = $_GET['id'];

<b>User ID:</b> <input type='text' disabled='disables' name='userid' value = '<?php echo $id;?>'></input type>

【讨论】:

    【解决方案2】:
    $result2 = mysql_query("SELECT * FROM complaints WHERE complaint_id = '$comid'", $link);
    $result2 = mysql_query("SELECT * FROM complaints", $link);
    

    您必须在此行中仅使用其中之一。我认为问题是第二行。此查询不选择“comid”的“id”。

    您的第一个查询行就足够了:

    $result2 = mysql_query("SELECT * FROM complaints WHERE complaint_id = '$comid'", $link);
    

    【讨论】:

    • 嗨,先生,所以...我将代码更改为以前的代码,但仍然给出相同的结果..$comid = $_GET["cid"]; $result2 = mysql_query("SELECT * FROM complaints WHERE complaint_id = '$comid'", $link); //$result2 = mysql_query("SELECT * FROM complaints", $link); while($row = mysql_fetch_assoc($result2)) { echo $row['id_number']; }
    • 嗯...请尝试mysql_fetch_array 而不是mysql_fetch_assoc
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2018-12-03
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 2019-07-23
    相关资源
    最近更新 更多