Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) PHP MySQL - Dúvida de inserção de dados na db


Guest Pedro Souto

Pergunta

Guest Pedro Souto

Olá

Pretendo que após listar todas as perguntas que estão na base de dados recolha as respostas e as insira na base de dados.

Já consigo colocar as questoes e criar as comboxes que acompanham a resposta que terão a name e id= ao número da IDQuestion.

SQL das tabelas

CREATE TABLE `erasmusEvaluationResult` (
  `IDQuestion` int(10) unsigned NOT NULL,
  `IDAccount` varchar(45) NOT NULL,
  `result` varchar(45) NOT NULL,
  PRIMARY KEY  (`IDQuestion`,`IDAccount`)
) 

CREATE TABLE `erasmusEvaluationQuestion` (
  `IDQuestion` int(10) NOT NULL auto_increment,
  `question` varchar(255) default NULL,
  `typeQuestion` tinyint(1) unsigned NOT NULL,
  PRIMARY KEY  (`IDQuestion`)
)
Após submeter a form
//seleciona todos as questões

$qQuestion = "SELECT IDQuestion FROM erasmusEvaluationQuestion ";
$rslQuestion = mysql_query($qQuestion) or die(mysql_error());
$i = 1;
while($rowsQuestion = mysql_fetch_array($rslQuestion))
        {
        $questionID[$i] = $rowsQuestion['IDquestion'];
        $resultquestionID[$i] = clean($_POST['.$i.']);
        $i++;
        }
        $n = $i;
        
//Criar Evaluation Result query
    for($i=1; $i<$n; $i++)
    {
        $qryEvaluation = "INSERT INTO erasmusEvaluationResult(IDQuestion, IDAccount, result) VALUES
         ('$questionID[$i]','$idAccount', '$resultquestionID[$i]' );";
        $result = mysql_query($qryEvaluation); 
    }

Não sei onde estou a errar. Agradeço antecipadamente.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
Guest Pedro Souto
o primeirocampotem que ir como null pqtudefiniu ele no banco como auto_increment

tipo assim,

INSERT INTO tabela VALUES ('','texto1','texto2');

saco

Não percebi =(

Veja o grupo ErasmusEvaluation, as questões lá colocadas são da base de dados.

Pretendo guardar os valores das resposta 'result' na base de dados na tabela erasmusEvaluationResult.

http://gnomo.fe.up.pt/~sai08/signup3.php

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Pedro Souto
Que erro está sendo apresentado afinal?

Troca isso:

$result = mysql_query($qryEvaluation);

Por isso:

$result = mysql_query($qryEvaluation) or die (mysql_error());

Não aparece nenhum erro.

Apenas escreve isto na base de dados.

IDQuestion IDAccount result

1 1

Eu tenho por exemplo 5 questões que estão guardadas na base de dados na tabela erasmusEvaluationQuestion.

Quando gero uma página coloco todas estas questões e um campo de resposta ou combobox ou textbox em que a id/nome que dou a esse campo é igual ao IDQuestion.

Pretendo colocar na tabela erasmusEvaluationResult o result

IDQuestion IDAccount result

1 1 2

2 1 olá

Link para o comentário
Compartilhar em outros sites

  • 0

A tá, ele só não está inserindo o resultado...

Você tenta inserir o $resultquestionID[$i], mas antes disso passa um valor para essa variável, por:

$resultquestionID[$i] = clean($_POST['.$i.']);

O que clean faz? Já que ela não é função do PHP (pelo menos não consta no manual)...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Pedro Souto
A tá, ele só não está inserindo o resultado...

Você tenta inserir o $resultquestionID[$i], mas antes disso passa um valor para essa variável, por:

$resultquestionID[$i] = clean($_POST['.$i.']);

O que clean faz? Já que ela não é função do PHP (pelo menos não consta no manual)...

A função clean é para prevenir sql injection. Vi num tutorial, funciona correctamente noutras partes do site.

Eles não insere nenhum $resultquestionID[$i] e apenas uma IDQuestion.

Link para o comentário
Compartilhar em outros sites

  • 0

atera tua tabela, e tira o unsigned pra ver se funciona

e faz assim na hora de inserir os dados

//Criar Evaluation Result query
for($i=1; $i<=$n; $i++) {
    $qryEvaluation = "INSERT INTO erasmusEvaluationResult VALUES ('".$questionID[$i]."','".$idAccount."', '".$resultquestionID[$i]."' )";
    $result = mysql_query($qryEvaluation); 
}

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Pedro Souto
atera tua tabela, e tira o unsigned pra ver se funciona

e faz assim na hora de inserir os dados

//Criar Evaluation Result query
for($i=1; $i<=$n; $i++) {
    $qryEvaluation = "INSERT INTO erasmusEvaluationResult VALUES ('".$questionID[$i]."','".$idAccount."', '".$resultquestionID[$i]."' )";
    $result = mysql_query($qryEvaluation); 
}

Problema Resolvido. =) Uma variável estava mal definida anteriormente. em vez de IDQuestion estava IDquestion.

Obrigado

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,1k
×
×
  • Criar Novo...