Не должно быть никаких проблем с наличием переменных get и post в одном запросе, но вы уверены, что ваш синтаксис правильный?Если это обычный php, разве вы не должны писать
<form id="edit_pregunta" method="post" action="file.php?id=<?php echo $this->id; ?>">
... //inputs here
</form>
[Edit]
Проблема в том (если я прав, и это стандартный php), что вы генерируете форму, котораявыглядит примерно так:
<form id="edit_pregunta" method="post" action="file.php?id='$this->id'">
... //inputs here
</form>
Это будет выглядеть так: '$this->id'
(включая '-signs).Когда вы хотите что-то вроде этого:
<form id="edit_pregunta" method="post" action="file.php?id=51">
... //inputs here
</form>
Тогда $_GET['id']
будет 51
.
[Edit2]
Кроме того, я думаю, что вам нужноизмените
if(isset($_POST['edit_pregunta'])){
на
if(isset($_POST['pregunta'])){
Если я не ошибаюсь, имя формы не отправляется на сервер, однако имя кнопки подтверждения, но я могу ошибаться в этой части.