如何使用Mysql和PHP添加评论

时间:2013-12-23 12:25:29

标签: php mysql

我设法在评论表中添加评论,但相关帖子没有显示。我理解因为articles表中的外键(artID)是空的。如何从文章表中获取主键?这是我的数据库的结构。

SQL注入问题将在稍后处理。准备好的陈述将完成。我只想在查询和php函数上获得一些帮助。谢谢。

物品
   的 artid的数据类型
   artTitre
   artAuteur
   artContenu
   artDate

住客评论
   commentID
   commentPseudo
   commentText
   的 artid的数据类型

commentaires.sql.php

  <?php

  // INSERT
  function insertCommentaire($c){

$PseudoCommentaire = $TexteCommentaire ='';


$PseudoCommentaire = $_POST['PseudoCommentaire'];
$TexteCommentaire = $_POST['TexteCommentaire'];
  $IdArticle = $_POST['IdArticle'];


$qryInsertComm = 'INSERT INTO commentaires (commentPseudo,commentText, artID)
                  VALUES ( \''.$PseudoCommentaire.'\',
                          \''.$TexteCommentaire.'\',
                          \''.$IdArticle.'\')
                         '; 


if (!mysqli_query($c,$qryInsertComm))
{
die('Error: ' . mysqli_error($c));
 }
echo "1 record added";  

}


// UPDATE
function updateCommentaire( $IdCommentaire ){


 }


// DELETE
function deleteCommentaire( $IdCommentaire ){


 }


// CONTROLER //


switch( $action ){

case 'insert' : 

    $process = insertCommentaire($conn);

    if( $process == 'ok' ) 
        header( 'location:index.php?page=home' );
    else 
        $page = 'home';
    break;

case 'update' : 
    $process = updateCommentaire( $_GET[ 'item' ] );    
    if( $process == 'ok' ) 
        header( 'location:index.php?page=home' );
    else 
        $page = 'home';
    break;

case 'delete' : 
    $process = deleteCommentaire( $_GET[ 'item' ] );    
    if( $process == 'ok' ) 
        header( 'location:index.php?page=home' );
    break;
   }

    ?>

2 个答案:

答案 0 :(得分:0)

如何从文章表中获取主键?

与选择任何其他列

相同
SELECT `artID` FROM `articles` WHERE `artID` = ?

这是我在你的帖子中可以看到的唯一问题。

答案 1 :(得分:0)

您正在

中使用名为IdArticle的隐藏输入值
<input type="hidden" name="IdArticle" value="" />

要跟踪评论应该反对的文章,如上面的php脚本中所示:

$IdArticle = $_POST['IdArticle'];

但是,查看HTML,您应该会看到您将空值传递给php脚本。

要解决此问题,请更新隐藏的输入字段,如下所示:

<input type="hidden" name="IdArticle" value="<?php echo $rows['artID'] ?>" />

现在应该可以了。