0

私は、動画にタグを追加できる Web サイトに取り組んでいます。このスクリーンショットは、結果がどのように見えるかの概要を示しています。

http://www.unistamp.ch/images/images.html

コメント付きのビデオが埋め込まれており、右側には MYSQL データベースからタイムラインのコメントの詳細情報にアクセスできる Iframe があります。これは、video_comment テーブルのスクリーンショットです。

コメント ID に基づいて、データベースから特定のコメントを削除したいと考えています。このコードを試しましたが、X ボタンをクリックしてコメント ID を渡してもうまくいきません。

<?php
include '../../../DB/MySql/connectVideoPhase.php';

//****** Delete Row in table
if(isset($_POST['X']))
{
    $comment_id = $_POST['comment_id'];
    //CHeck --> doesnt work
    echo "<pre> commentid= ".$comment_id . "</pre> ";
    $sql = "DELETE video_converted_comment ".
               "WHERE commentid = \"".$comment_id."\" ;";
    $retval = mysql_query( $sql);

    if(! $retval )
    {   
        die('Could not delete data: ' . mysql_error()); }
        echo "Deleted data successfully\n";
    }
    //**************************************

    //******* Get the comments  
    $video_id = $_REQUEST['VideoId'];
    // for testing use a specific video ID
    if (! $video_id) {
        $video_id = '153fb143';
    }

    $sqlSelectComment = "Select * from video_converted_comment WHERE videoid ='".$video_id."'";
    $sqlComments = mysql_query($sqlSelectComment);
    $i = mysql_num_rows($sqlSelectComment);
    // *************************

    //********* Fill Table
    echo "

<table width=\"100\" border=\"1\" >
<tr>
<td width=\"25\"><b>start</b></td>
<td width=\"25\"><b>end</b></td>
<td width=\"75\"><b>Text</b></td>
<td width=\"5\"><b>X</b></td>
<td width=\"0\"><input type=\"hidden\"></td>
</tr>"; 

    while ($comments = mysql_fetch_array($sqlComments))
    {

        echo "<tr><td>" .$comments['starttime'] ."</td>";
        echo "<td>" .$comments['endtime'] ."</td>";
        echo "<td>" .$comments['text'] ."</td>";
        echo "<td> <form method=\"post\" action=\"".$_PHP_SELF ."\"> 
        <input name=\"comment_id\" type=\"hidden\" value=\"".$comments['id']."\">  
        <button name=\"X\"  type=\"submit\" value=\"".$comments['id']."\">  </td>
        </form>";
    }
echo "</table> ";

PHP を使用して、コメント ID に基づいて DB へのコメントの削除/追加に関するヘルプをいただければ幸いです。javascriptでやったほうがやりやすいでしょうか?ビデオの下のタイムラインの視覚化は、javascript で行われます。

4

1 に答える 1

1

それをしばらくいじった後、コードは現在機能しています。

テーブルの削除ボタンをクリックすると、スクリプトは MySQL テーブルの行を削除します。

間違い番号 1だった: テーブル全体が Iframe に表示されます。それがサイトに含まれているとき

<iframe id=\"commentTable\" src=\"DB/MySql/CommentTableAndDelete.php?VideoId=".$ID."..

Id は URL で渡され、によってアクセスされます。

                    $video_id = $_REQUEST['VideoId'];

フォームのメソッドが「post」であるため、エントリを削除した後にスクリプトがそれ自体をロードする場合、これは機能しません。

これは最善の方法ではないかもしれませんが、うまくいきます:

        $video_id = $_REQUEST['VideoId'];
                // if script loads itself
                if (! $video_id) {
                $video_id = $_POST['VideoId'];
                }

間違い番号 2がフォームでした。どういうわけか、タイプミスのために変数が渡されませんでした

<form method=\"post\" action=\"".$_PHP_SELF ."\"> <input id=\"comment_id\" name=\"comment_id\" type=\"hidden\" value=\"".$comments['commentid']."\">
<button name=\"X\" type=\"submit\" value=\"X\">

間違い番号 3 SQL ステートメントが正しくありません。ステートメントをphpコードに貼り付ける前に、phpmyadminでテストしました。

$sql = "DELETE FROM video_converted_comment WHERE commentid='".$comment_id."' ;";

作業コード:

        //******* Get the comments  
                    $video_id = $_REQUEST['VideoId'];

                    if (! $video_id) {
                    $video_id = $_POST['VideoId'];
                    }


                    $sqlSelectComment = "Select * from video_converted_comment WHERE videoid ='".$video_id."';";
                    $sqlComments = mysql_query($sqlSelectComment);
                    if(! $sqlComments )
                    {   die('Could not get Comments from DB: ' . mysql_error()); }

                    $i = mysql_num_rows($sqlSelectComment);
    // *************************

    //****** Delete Row in table
    //http://stackoverflow.com/questions/15843678/mssql-and-php-select-specific-row-based-on-which-button-is-clicked
        if(isset($_POST['X']))
        {
        $comment_id = $_POST['comment_id'];
        //CHeck
        //echo "<pre> commentid= ".$comment_id . "</pre> ";

        $sql = "DELETE FROM video_converted_comment WHERE commentid='".$comment_id."' ;";
        $retval = mysql_query( $sql);


        if(! $retval )
        {   die('Could not delete data: ' . mysql_error()); }
        echo "Deleted data successfully\n";
        }
        //**************************************

//********* Fill Table
echo "

<table width=\"100\" border=\"1\" >
<tr>
<td width=\"25\"><p>start</p></td>
<td width=\"25\"><p>end</p></td>
<td width=\"100\"><p>Text</p></td>
<td width=\"10\"><p>X</p></td>
</tr>"; 

    while ($comments = mysql_fetch_array($sqlComments))
        {

        echo "<tr><td>" . gmdate("i:s", $comments['starttime']) ."</td>";
        echo "<td>" . gmdate("i:s", $comments['endtime']) ."</td>";
        echo "<td>" .$comments['text']."</td>";
        echo "<td> <form method=\"post\" action=\"".$_PHP_SELF ."\"> 
                <input id=\"comment_id\" name=\"comment_id\" type=\"hidden\" value=\"".$comments['commentid']."\">  
                <button name=\"X\"  type=\"submit\" value=\"X\">  </td>
                </form>";
        }
echo "</table> ";

?>
于 2013-09-30T21:08:51.553 に答える