我设法在评论表中添加评论,但相关帖子没有显示。我理解因为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;
}
?>
答案 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'] ?>" />
现在应该可以了。