PHP - PROBLEMA CON INSERT

   
Vista:

PROBLEMA CON INSERT

Publicado por movick (824 intervenciones) el 09/10/2014 00:07:13
Tengo un error en este Insert:

1
2
3
4
5
INSERT INTO consulta( fecha, peso, talla, edad, cod_hcm, circunfcefalica,
circunfbrazo, observacion, hepatitisa, hepatitisb, polio, fieama, difteriateta,
varicela, meningitis, influenzae, sarampion, vph,
rotavirus, tuberculosis )
VALUES ('2014-10-08', 1.1, 1.1, 14, 1, 1.1, 1.1, 'vnvbnvbnvbnvbnvbn', '1', '', '', '', '', '', '', '', '', '', '', '')

resulta que me arroja este error:

1
2
ERROR: invalid input syntax for type boolean: ""
SQL state: 22P02

Anteriormente estaba actualizando la tabla normalmente pero ahora no lo hace.

por supuesto utilizo este codigo para actualizar la tabla:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
if(isset($_POST['checkhepa']))
{
 $hepatitisa=$_POST['checkhepa'];
  if($hepatitisa){
     $hepatitisa = TRUE;
   }
  else
   {
     $hepatitisa = FALSE;
   }
}
//**HEPATITIS B
if(isset($_POST['checkhepb']))
{
 $hepatitisb=$_POST['checkhepb'];
  if($hepatitisb){
     $hepatitisb = TRUE;
   }
  else
  {
     $hepatitisb = FALSE;
  }
}
 
//**POLIOMELITIS
if(isset($_POST['checkpoli']))
{
 $polio = $_POST['checkpoli'];
  if($polio){
  $polio= TRUE;
  }
  else{
  $polio = FALSE;
  }
}
 
//**FIEBRE AMARILLA
if(isset($_POST['checkfieama']))
{
 $fieama = $_POST['checkfieama'];
  if($fieama){
    $fieama= TRUE;
  }
  else{
  $fieama = FALSE;
  }
}
 
//**DIFTERIA-TETANOS
if(isset($_POST['checkdifteriateta']))
{
 $difteriateta = $_POST['checkdifteriateta'];
  if($difteriateta){
     $difteriateta= TRUE;
  }
  else{
  $difteriateta = FALSE;
  }
}
//**VARICELA
if(isset($_POST['checkvaricela']))
{
 $varicela = $_POST['checkvaricela'];
  if($varicela){
  $varicela = TRUE;
  }
  else{
  $varicela = FALSE;
  }
}
 
//**MENINGITIS MENINGOCOCICA
if(isset($_POST['checkmeningitis']))
{
 $meningitis = $_POST['checkmeningitis'];
  if($meningitis){
  $meningitis = TRUE;
  }
  else{
  $meningitis = FALSE;
  }
}
 
//**HEMOPHILUS INFLUENZA
if(isset($_POST['checkinfluenzae']))
{
 $influenzae = $_POST['checkinfluenzae'];
  if($influenzae){
  $influenzae = TRUE;
  }
  else{
  $influenzae = FALSE;
  }
}
 
//**SARAMPION-RUBEOLA-PAROTIDITIS
if(isset($_POST['checksaramp']))
{
 $saramp = $_POST['checksaramp'];
  if($saramp){
  $saramp = TRUE;
  }
  else{
  $saramp = FALSE;
  }
}
 
//**VPH
if(isset($_POST['checkvph']))
{
 $vph = $_POST['checkvph'];
  if($vph){
  $vph = TRUE;
  }
  else{
  $vph = FALSE;
  }
}
 
//**ROTAVIRUS
if(isset($_POST['checkrotavirus']))
{
 $rotavirus = $_POST['checkrotavirus'];
  if($rotavirus){
  $rotavirus = TRUE;
  }
  else{
  $rotavirus = FALSE;
  }
}
//**TUBERCULOSIS
if(isset($_POST['checktuberculosis']))
{
 $tuberculosis = $_POST['checktuberculosis'];
  if($tuberculosis){
  $tuberculosis = TRUE;
  }
  else{
  $tuberculosis = FALSE;
  }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

PROBLEMA CON INSERT

Publicado por movick (824 intervenciones) el 09/10/2014 00:45:05
Solo quiero hacer una pregunta.

Es correcto hacer esta pregunta cuando valido esta variable?

1
2
3
4
5
6
7
8
9
10
11
if(isset($_POST['checkhepa']))
{
 $hepatitisa=$_POST['checkhepa'];
  if($hepatitisa){
     $hepatitisa = TRUE;
   }
  else
   {
     $hepatitisa = FALSE;
   }
}
ya que no esta actualizando la tabla. He buscado las miles de formas pero sigue el problema.
Y disculpen la insistencia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROBLEMA CON INSERT

Publicado por Gonzalo (339 intervenciones) el 09/10/2014 18:39:30
aqui el problema es que la variable se ignora si el isset no encuentra el objeto, normalmente los checkbox que no estan activos no los detecta el isset asi que si el checkbox esta en blanco el if(isset(post[checkbox])) no va a asignarle ningun valor a la variable.

mi recomendacion es que inicialices todas las variables antes de el if(isset( y les asignes un valor especialmente a los booleanos, a esos dales un valor inicial de 0, y a los strings un valor inicial de "".

$hepatitisa = 0;

if(isset($_POST['checkhepa']))
{
$hepatitisa = 1;
}

o en su caso, como ya sabemos que es un valor booleano podemos ponerlo asi.

if(isset($_POST['checkhepa']))
{
$hepatitisa = 1;
}else
{
$hepatitisa = 0;
}

de esa manera si el checkbox no esta activado la variable hepatitisa queda con valor de 0 (false) que es lo correcto.

recuerda que el value de los checkbox tambien pueden tener cadenas de texto, en esos casos el tratamiento es parecido a la primera opcion.

$hepatitisa = "";

if(isset($_POST['checkhepa']))
{
$hepatitisa = $_POST['checkhepa'];
}

salu2, suerte.
(si no respondo es porque no me estan llegando correos avisandome que me respondieron a este post)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROBLEMA CON INSERT

Publicado por movick (824 intervenciones) el 10/10/2014 03:10:43
Hola Gonzalo
Aplique tu codigo esta bien y tiene logica

el asunto es que la variable da 1 o 0 la idea es que arroje TRUE. o FALSE.

ya que diseñé la tabla con campos booleanos

esta es la tabla

tabla
y el insert se forma de esta manera:
1
2
3
4
INSERT INTO consulta( fecha, peso, talla, edad, cod_hcm, circunfcefalica,
circunfbrazo, observacion, hepatitisa, hepatitisb, polio, fieama, difteriateta,
varicela, meningitis, influenzae, sarampion, vph, rotavirus, tuberculosis )
VALUES ('2014-10-09', 23.6, 56.8, 13, 1, 8.7, 4.3, '', '1', '', '', '', '', '', '', '', '', '', '', '')

EN ESTE CASO CUANDO SELECCIONO HEPATITISA CREA EL NUMERO 1
que debo hacer para que las variables salgan directamente con TRUE O FALSE?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar