2

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

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

4

4 回答 4

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
        }
        ?>
于 2013-05-10T22:53:13.533 回答
1
echo "<td><a href='markAsInActive.php?id=$row[0]'>Active</a></td>";

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

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

于 2013-05-10T22:35:47.200 回答
0
  • 我的第一个建议是使用mysql_fetch_assoc函数而不是mysql_fetch_row函数。

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

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

  • 在您的“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']);
    

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

于 2013-05-10T22:47:30.147 回答
0

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

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

现在您的信息以以下方式提供给您:

 $info = $_POST['userInput'];

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

于 2013-05-10T22:29:57.247 回答