PHP - ERROR MUY RARO

 
Vista:

ERROR MUY RARO

Publicado por EZE (3 intervenciones) el 06/06/2008 17:51:59
Es es un error muy raro.
Tengo un formulario de ingreso de datos (A)
Tengo un formulario de alta de esos datos (B)

El alta funciona correctamente, bah., casi correctamente.

En el A tengo un textbox con numero de documento y un combox con TIPO de doc.(llamado: "combo_tipo_doc").
en el textbox escribo el numero y listo, todo bien.
en el combo eligo un valor de los tres que hay cargados (DNI, LE, LC) y listo.

El tema es que no me da el alta en la base de datos, nunca llega a cargarse el registro.
Esta es la parte del codigo B que hace efectiva el alta:
<body>
<?php
$tipo_doc=$_POST['combo_tipo_doc']; //Recoge los datos del form anterior
$txt_doc=$_POST['txt_doc']; //Recoge los datos del form anterior

mysql_query("INSERT INTO `tabla_clientes` (
`fecha_alta`,
`ape_nom`,
`tipo_doc_documento`,
`doc`) VALUES ('$tipo_doc','$txt_doc')");

...

Debería funcionar pero no funciona.
Algo llegué a descubrir para darles mas pistas: Si yo reemplazo la línea
$tipo_doc=$_POST['combo_tipo_doc']; por---> $tipo_doc='DNI'; el alta se produce perfectamente.
Es indudable que el problema viene del valor del combo, pero el valor es DNI, es el mismo, no es un número ni nada. Es exactamente el mismo texto, pero si es tomado el valor del combox no se por que no me lo acepta como texto real como si lo escribiese a mano.
Mas datos: En mi base de datos MySql probé sacando las relaciones que tiene el campo tipo de documento y el alta se produce de cualquiera de las dos maneras, o sea, no tengo problemas, pero de qué me sirve.. yo necesito una relacion de la tabla clientes con la de tipo de documentos. O sea, esa solucion no me conviene implementar.
Quizás es que no llega a tomar el valor del combox como un verdadero texto... hay alguna manera de especificarle que ese valor es puro texto?
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

RE:ERROR MUY RARO

Publicado por Diego Romero (1450 intervenciones) el 06/06/2008 19:14:07
Lo primero que veo en la sentencia SQL es que los datos no se corresponden con los campos. De hecho tienes tres campos y solo dos datos. ¿Es esto correcto?.

Dices que combo_tipo_doc es un descolgable pero recuerda que lo que se va por la variable POST es el "value" del descolgable y no el texto mostrado al usuario. ¿El descolgable tiene "value" para cada opción?.
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

RE:ERROR MUY RARO

Publicado por rockmuerte (146 intervenciones) el 06/06/2008 19:33:39
una regunta tienes en cuenta que en tu insert tiene que especificar que los canpos que llamas tienes que ingresar, ayi veo que llamar a 4 campos de tu tabala pero solo ingresas 2, fijate bien en eso.
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

RE:ERROR MUY RARO

Publicado por EZE (3 intervenciones) el 06/06/2008 21:51:09
En cuanto a los campos del insert...lo escribí mal aqui.. el de fecha_alta no va. En mi archivo .php tengo solo 2 campos, sino obvio me tiraría error. Gracias igual por la obsevación.
Aclarando que esa no es la cuestión del problema, entonces contesto que si.. en el combox tengo la opcion value escrita... les paso el codigo del combox...

<?php
$matriz = mysql_query("SELECT * FROM tabla_tipodocumento") or die(mysql_error());
while($columna = mysql_fetch_assoc($matriz)) {
echo "<option value=" ". $columna['tipo_doc_documento']."">";
echo $columna['tipo_doc_documento'];
echo "</option>";
}
?>

El combo funciona perfecto, me muestra los datos perfecto y la opcion elegida es la misma que muestra el combo... que son los textos (DNI, LE, LC)..., asi q sigo sin saber por que despues no me toma el dato elegido.
Incluso para asegurarme mas todavia, en el otro fomulario ´(el que hace efectiva el alta) le escribo al final de todo
echo ('$tipo_doc');
y me escribe en pantalla DNI.
por lo que mas todavía me asombro por que no me lo toma como un valor correcto la base de datos para insertar el registro.
Como les dije antes, si en la BD saco la relación de este campo, funciona todo perfecto, el problema es que necesito esa relacion.
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

RE:ERROR MUY RARO - Solucionado!

Publicado por EZE (1 intervención) el 06/06/2008 23:01:25
Al final error estaba en el combo que estaba mal escrito...le saque los "" y anduvo.
se ve que los estaba tomando como parte del valor, lo raro es que despues en la pantalla no aparecia ese símbolo cargado.
En fin. ya esta.. el codigo final del combo quedo asi:

<?php
$matriz = mysql_query("SELECT * FROM tabla_tipodocumento") or die(mysql_error());
while($columna = mysql_fetch_assoc($matriz)) {
echo "<option value=". $columna['tipo_doc_documento'].">"; //esta es la fila fixed
echo $columna['tipo_doc_documento'];
echo "</option>";
}
?>

GRACIAS
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