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

Selecionar as opções desejadas de um check-list


tfguitar

Pergunta

Boa noite galera, preciso de mais uma grande ajuda de vocês.

Estou com um sistema de ergonomia, onde a cada inspeção é feito um check-list com diversas opções.

Essa página do check-list eu criei utilizando radio buttons, com 3 opções, OK, NOK e N/A.

Até aí tudo certo, pois o consigo jogar as opções todas no banco de dados.

Porém são 67 perguntas, e no banco de dados, os campos estão cadastrados como insp_01 a insp_67.

Então o que preciso fazer é listar todos os resutados NOK, que é só fazer uma query, porém mostrar com a texto de pergunta, que é um texto html.

Pensando aqui agora (não tinha pensando nessa hipótese antes), acho que seria colocar as perguntas em um array de Strings, e quando o a query me retornar que item insp_[$n] for NOK, ele me mostrar que "pergunta[$n] está NOK".

Só que eu não manjo nada de array em PHP e precisaria de um apoio...

alguém se habilita a me ajudar ?

valeu

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Bom dia, tfguitar!

Não entendo.

Se a pergunta 65 vai para o campo 65, só pode ser a pergunta 65 que foi respondida NOK, não é?

Sendo assim, você pega a resposta do campo, e já sabe que pergunta foi formulada.

quanto ao array, você terá que usar o mysql_fetch_array() para buscar esses dados.

Depois de feito a consulta, use a função acima e, se você achar que são muitas e quer colocar numa relação, use ela

dentro de um WHILE.

Caso precise saber como fazer, pode voltar.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

tipo... seria basicamente...

um exemplo, o formulario teriam as seguintes perguntas

1 - Cadeira possui encosto reclinável ?

2 - Existem apoio para os braços ?

3 - A cadeira possui ajuste de altura ?

65 - Trabalha por mais de uma hora na mesma posição ?

aí cada pergunta recebe OK, NOK ou NA e insiro no banco de dados insp_1 = OK , insp_2 = NOK e etc...

aí na hora de eu fazer uma pesquisa, selecionarei todos as respostas q forem NOK.

só q não sei como usar o mysql_fetch_array, para ele selecionar as perguntas as quais as respostas forem NOK...

não sei se eu soube explicar hehehe

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia, tfguitar.

Sim soube.

Você pode fazer algo assim:

$tipodado = $_POST["dados insp"];

$cons = "SELECT dados insp FROM suatabela WHERE dados insp='$tipodado'";

$exe_cons = mysql_query("$cons");

$resul_cons = mysql_fetch_array($exe_cons);

Dessa forma só virão os dados que forem iguais ao tipodados.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

pow... não consegui fazer nada do que eu quis....

Meu código de cadastro é assim:

if(isset($_POST['inc_insp_ergo']))
{
    for($i = 0; $i < 63; $i++)
    {
        $var = "insp_".$i;
        $not_null1[$i] = $_POST[$var];
        if($not_null1[$i] == "")
        {
            $não = $não + 1;
        }else
        {
            $não = 0;
        }
    }
    if($não == 0)
    {
        $qry = "INSERT INTO tbl_insp_ergo (insp, insp_1, insp_2, insp_3, insp_4, insp_5, insp_6, insp_7, insp_8, insp_9, insp_10, insp_11, insp_12, insp_13, insp_14, insp_15, insp_16, insp_17, insp_18, insp_19, insp_20, insp_21, insp_22, insp_23, insp_24, insp_25, insp_26, insp_27, insp_28, insp_29, insp_30, insp_31, insp_32, insp_33, insp_34, insp_35, insp_36, insp_37, insp_38, insp_39, insp_40, insp_41, insp_42, insp_43, insp_44, insp_45, insp_46, insp_47, insp_48, insp_49, insp_50, insp_51, insp_52, insp_53, insp_54, insp_55, insp_56, insp_57, insp_58, insp_59, insp_60, insp_61, insp_62, insp_63)
                                 VALUES ('$num', '$insp_1', '$insp_2', '$insp_3', '$insp_4', '$insp_5', '$insp_6', '$insp_7', '$insp_8', '$insp_9', '$insp_10', '$insp_11', '$insp_12', '$insp_13', '$insp_14', '$insp_15', '$insp_16', '$insp_17', '$insp_18', '$insp_19', '$insp_20', '$insp_21', '$insp_22', '$insp_23', '$insp_24', '$insp_25', '$insp_26', '$insp_27', '$insp_28', '$insp_29', '$insp_30', '$insp_31', '$insp_32', '$insp_33', '$insp_34', '$insp_35', '$insp_36', '$insp_37', '$insp_38', '$insp_39', '$insp_40', '$insp_41', '$insp_42', '$insp_43', '$insp_44', '$insp_45', '$insp_46', '$insp_47', '$insp_48', '$insp_49', '$insp_50', '$insp_51', '$insp_52', '$insp_53', '$insp_54', '$insp_55', '$insp_56', '$insp_57', '$insp_58', '$insp_59', '$insp_60', '$insp_61', '$insp_62', '$insp_63')";
                                 
        if(mysql_query($qry))
        {
            echo"<script>alert(\"Dados gravados com sucesso!\");</script>";
        }
        }
}
E cada pergunta minha está definida assim na tela
<tr>
    <td width="22" align="center" class="txt">1.1</td>
    <td height="25" class="txt">Realiza rod&iacute;zio de tarefa?</td>
    <td align="center"><label>
     <input type="radio" name="insp_1" id="insp_1" value="sim" <? if($insp_1 == "sim"){echo "checked";} ?> />
    </label></td>
    <td align="center"><label>
     <input type="radio" name="insp_1" id="insp_1" value="não" <? if($insp_1 == "não"){echo "checked";} ?> />
    </label></td>
    <td align="center"><label>
     <input type="radio" name="insp_1" id="insp_1" value="na" <? if($insp_1 == "na"){echo "checked";} ?> />
    </label></td>
  </tr>
porém não tou conseguindo puxar o q eu é cadastrado como "não" (NOK) Primeiro, eu queria concatenar no uma variavel num trecho do SQL, é possivel ???
$qry = "SELECT * FROM tbl_insp_ergo WHERE insp='$num'";
$rs  = mysql_query($qry) or die ("ERRO: $qry");

for ($i = 1; $i <= 63; $i++)
{
    $insp_[$i] = mysql_result($rs, 0, "insp_'$i'");    //tem como concatenar o valor de $i em "insp_" ???
    echo "\n".$insp_[$i];
}
e coloquei as perguntas nos seus indices respectivos
perg[1]="Realiza rodízio de tarefa?";
perg[2]="Cumprindo o padrão de rodízio estipulado pelo SESMT?";
perg[3]="O trabalho que exige maior raciocínio e mais propensão a erros é realizado no início da jornada?";
perg[4]="Há horas extras excessivas?";
perg[5]="É mantido o canal aberto para discussão de situações de trabalho ocasionadoras de tensão?";
.
.
.

porém não sei mais como progredir....

Link para o comentário
Compartilhar em outros sites

  • 0

uma questao??? quem responde esta registado???

ou voce pode pegar a session e inserir em 2 tabelas

--
-- Estrutura da tabela `quemresponde`
--

CREATE TABLE IF NOT EXISTS `questionario` (
  `id` int(255) NOT NULL auto_increment,
  `session` varchar(255) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1;

--
-- Extraindo dados da tabela `quemresponde`
--
--
-- Estrutura da tabela `questionario`
--

CREATE TABLE IF NOT EXISTS `questionario` (
  `id` int(255) NOT NULL auto_increment,
  `npergunta` int(255) NOT NULL,
  `pergunta` varchar(255) collate latin1_general_ci NOT NULL,
  `resposta` varchar(255) collate latin1_general_ci NOT NULL,
  `session` varchar(255) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1;

--
-- Extraindo dados da tabela `questionario`
--
depois kem responde voce faz
session_start();
$session = session_id();
$tab = "quemresponde";
mysql_query("INSERT INTO `$tab` (`session`) VALUES ('$session')");
         
e tambem

$tab = "questionario";
mysql_query("INSERT INTO `$tab` (`session`,`npergunta`,`pergunta`,`resposta`) VALUES ('$session','$npergunta','$pergunta','$resposta')");
quando pega os dados faz uma query dentro de outra
<?php 
    $tab="quemresponde";
    $query = ("SELECT * FROM `$tab` ORDER BY `id` DESC");
        $temp  = mysql_query($query);
    $row = mysql_fetch_assoc($temp);
        while ($row != null)
        { 
                   $idsession = $row["session"];
//////////////////////
 $tab="questionario";
 $respostanegativa="não";
 $query = ("SELECT * FROM `$tab` WHERE `session`='$idsession'");  //mostra todas as respostas
  $query = ("SELECT * FROM `$tab` WHERE `session`='$idsession' and `resposta`='$respostanegativa'");  //mostra todas as respostas
                   $temp  = mysql_query($query);
               $row = mysql_fetch_assoc($temp);
                while ($row != null)
               { 

echo $row["npergunta"];
echo "<br>";
echo $row["pergunta"];
echo "<br>";
echo $row["resposta"];
echo "<br>";
echo $row["session"]; //mostra o id de quem respondeu

                       $row = mysql_fetch_assoc($temp);
               }
///////////////
                 $row = mysql_fetch_assoc($temp);
        }
    ?>

deve estar ai muita trapalhada, mas a ideia é essa, se tiveres os dados divididos em mais tabelas não divides os campos. me diz senao entendeu a ideia

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...