2013-12-23 2 views
-1

Мне удалось добавить комментарии к таблице комментариев, но это не похоже на соответствующую запись. Я понимаю, потому что внешний ключ (artID) в таблице статей пуст. Как получить первичный ключ из таблицы статей? Вот структура моей базы данных.Как добавить комментарии к сообщению с Mysql и PHP

Проблемы с инъекциями SQL будут рассмотрены позже. Подготовленные заявления будут сделаны. Я просто хотел бы получить помощь по запросу и php-функции. Спасибо.

статьи
artID
artTitre
artAuteur
artContenu
artDate

Commentaires
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; 
    } 

    ?> 
+4

Здесь много кода. Пожалуйста, изолируйте проблему и опубликуйте только соответствующие коды. –

ответ

0

Вы используете скрытый вход вал под названием IdArticle в

<input type="hidden" name="IdArticle" value="" /> 

Чтобы отслеживать, какие статьи комментарий должен идти против, как показано выше в сценарии PHP:

$IdArticle = $_POST['IdArticle']; 

Однако, глядя на ваш HTML, вы должны увидеть, что вы передаете пустое значение вашему скрипту php.

Чтобы это исправить, обновить скрытое поле ввода, как это:

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

Теперь он должен работать.

+0

Спасибо !!!! Ты заставил его работать !!!! – swissed

+0

Пожалуйста, используйте ['htmlspecialchars'] (http://php.net/htmlspecialchars) при выводе на HTML, чтобы предотвратить [XSS] (https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29). –

0

Как извлечь первичный ключ из таблицы статей?

То же, выбрав любой другой столбец

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

Это единственный вопрос, который я могу видеть в вашем посте.

Смежные вопросы