【问题标题】:update data into mysql database by clicking on a link using PHP and HTML通过单击使用 PHP 和 HTML 的链接将数据更新到 mysql 数据库中
【发布时间】:2013-05-10 22:21:00
【问题描述】:

当用户点击链接时,有没有办法更新 MySQL 数据库中的数据? 我正在创建一个投票应用程序。它允许用户存储问题以立即使用或供以后使用。当用户查看他创建的问题时,他/她可以单击一个链接,该链接将更新数据库中的一列,该列将根据问题 ID 存储 1 或 0。 (1 表示该问题可以投票,0 则相反)。我已经编写了代码来从数据库中检索问题。现在我正在尝试编写通过单击链接来更新问题数据的代码。

我想不通的是如何获取用户点击链接的问题 ID,以便我可以更新数据库。 如果我的解释不清楚,请原谅。英语是我的第二语言,我正在努力更好地沟通。

【问题讨论】:

  • 如果您不想使用 ajax,您应该将 id 存储在隐藏的输入值中。
  • @Siamak.A.M ,如何获取问题 ID 来存储它?这就是我想要弄清楚的。
  • 你的 QUESTIONS 表结构是什么?

标签: php html mysql


【解决方案1】:

你可以这样做:

<?php
        $username = $_COOKIE['username'];
        $sql = "SELECT * FROM QUESTIONS WHERE username ='$username'";
        $result = mysql_query($sql) or die(mysql_error());    
        if (mysql_num_rows($result) > 0) {

        //---------- new
        if(isset($_GET['voteID']))
        {
            $viteID = (int) $_GET['voteID'];
            // your update query
        }

        //--------  
            ?> 
            <table width="50%" cellpadding="5" cellspacing="0" border="1">
                <tr><td><b>Question ID</b></td><td><b>Question</b></td><td><b>Active/Inactive</b></td></tr>
                <?php
                $html = '';
                while ($row = mysql_fetch_row($result)) {
                    $html .= '<tr>';
                    $html .= '<td>' . $row[0] . '</td>';
                    $html .= '<td>' . $row[1] . '</td>'; 
                    $activity = $row[3];

                    // ---- new
                    $html .= '<a href="'.$_SERVER['PHP_SELF'].'?id='.$row[0].'">Vote Up</a>';               
                    //-------

                    //if active = 1, do the following
                    if ($activity == 1) {
                        $html .= '<td>' . '<a href=markAsInActive.php>Active</a>' . '</td>';
                    } else {
                        $html .= '<td>' . 'Inactive' . '</td>';
                    }
                    $html .='</tr>';

                }
                echo $html;
                ?>
            </table>
            <?php
        }
        ?>

【讨论】:

  • 它通过点击按钮而不是链接来更新数据库。总之感谢。我现在要使用它。
  • 已编辑链接的答案,如果答案有帮助,请接受:)
  • 你真是个天才!!谢谢。
【解决方案2】:
echo "<td><a href='markAsInActive.php?id=$row[0]'>Active</a></td>";

我只是猜测 $row[0] 是 ID ——您可以将其更改为适合您数据库的列(通常最好使用 mysql_fetch_assoc,这样您就可以按名称访问列而不是无意义的列号) .

然后 PHP 脚本可以使用 $_GET['row'] 来获取应该更新的 ID。

【讨论】:

    【解决方案3】:

    您需要添加一个 html 表单元素。

    <from action="yourURL.php" method="post">
       <input type="text" name="userInput" />
       <input type="submit" value="Submit" />
    </form>
    

    现在您的信息是:

     $info = $_POST['userInput'];
    

    然后编写一个 UPDATE 查询将用户信息放入记录中。

    【讨论】:

    • 嗨,我考虑过这样做。但是,我不希望我的用户每次都想将他们的问题标记为活动以记住问题 ID。我希望它由系统自动完成。
    • 当输入发生变化时,只需使用 javaScript 为您发布表单。您可以发布到相同的 fprm 名称,或者创建一个单独的 handler.php,在后台使用 ajax 调用来处理它。
    【解决方案4】:
    • 我的第一个建议是使用mysql_fetch_assoc 函数而不是mysql_fetch_row 函数。

    • 现在,将锚链接更改为"markAsInActive.php?id={$row[0]}",而不是markAsInActive.php,例如

    echo "&lt;td&gt;&lt;a href='markAsInActive.php?id={$row[0]}'&gt;Active&lt;/a&gt;&lt;/td&gt;";

    • 在你的'markAsInactive.php'中,你可以写如下。

      $sql = "UPDATE `QUESTIONS` SET `is_active`='0' WHERE `ID` = {$_GET['id']}";
      $result = mysql_query($sql) or die(mysql_error());
      header('Location: ' . $_SERVER['HTTP_REFERER']);
      

    假设QUESTIONS表的主键是ID,表的活动标志列是is_active

    【讨论】:

      猜你喜欢
      • 2011-03-14
      • 2014-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多