2

ユーザーがリンクをクリックしたときに MySQL DB のデータを更新する方法はありますか? 投票アプリを作成しています。ユーザーは質問を保存して、すぐに使用したり、後で使用したりできます。ユーザーが作成した質問を表示しているときに、質問 ID に基づいて 1 または 0 を格納するデータベースの列を更新するリンクをクリックできます。(1 は質問が投票可能であることを意味し、0 はその反対です)。DB から質問を取得するコードを作成しました。そして今、リンクをクリックして質問データを更新するコードを書こうとしています。

私が理解できないのは、ユーザーがリンクをクリックした質問 ID を取得して、DB を更新する方法です。 私の説明が明確でない場合は、すみません。英語は私の第二言語であり、これをよりよく伝えるために一生懸命努力していました.

4

4 に答える 4

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

それが IDだと推測しているだけです。それをデータベースの適切な列に変更できます (無意味な列番号ではなく、名前で列にアクセスできるようにするため$row[0]、通常は使用することをお勧めします)。mysql_fetch_assoc

PHP スクリプトは、$_GET['row']更新する必要がある ID を取得するために使用できます。

于 2013-05-10T22:35:47.200 に答える
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 に答える
0
  • My first suggestion is to use the mysql_fetch_assoc function instead of mysql_fetch_row function.

  • Now, change the anchor link as "markAsInActive.php?id={$row[0]}" instead of markAsInActive.php such as

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

  • In your 'markAsInactive.php', you can write as following.

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

assuming that the primary key of the QUESTIONS table is ID and the activity flag column of the table is 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 に答える