Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problema con $_POST y mysql

Estas en el tema de problema con $_POST y mysql en el foro de PHP en Foros del Web. hola, tengo un problema de inserción de datos en una base de datos mysql, y es el siguiente. tengo un formulario que recoge una serie ...
  #1 (permalink)  
Antiguo 10/01/2016, 17:02
 
Fecha de Ingreso: diciembre-2015
Mensajes: 36
Antigüedad: 8 años, 4 meses
Puntos: 0
problema con $_POST y mysql

hola, tengo un problema de inserción de datos en una base de datos mysql, y es el siguiente. tengo un formulario que recoge una serie de datos y unas tintas, la serie de datos la recoge el programa sin problema, pero las tintas no las coge y los $_POST que tengo en los otros datos son idénticos al de las tintas y no hay manera, he comprobado el tipo de dato en mysql y es un tipo entero y el campo es una lista desplegable de 8 opciones del 1 al 8.

pd: también tengo un condicional en el que dependiendo del numero de tintas escogido aumenta el precio y no se si estará bien planteado ese condicional.

Código PHP:
$tintas $_POST['tintas']; 
este sería el código php en mi hoja de código php

Código HTML:
<td>Tintas:</td>
		    <td><select name="tintas">
				<option value="1" selected="selected">1</option>
				<option value="2">2</option>
				<option value="3">3</option>
				<option value="4">4</option>
				<option value="5">5</option>
				<option value="6">6</option>
				<option value="7">7</option>
				<option value="8">8</option>
	        </select></td> 
lo de arriba sería el código html.

15 tintas int(1) y esto sería la estructura del campo de la base de datos

no veo el fallo, ya que todos los demás $_POST los tengo problemas de insercción solo con este campo. y el condicional para el aumento de precio dependiendo de las tintas seleccionadas es este.

Código PHP:
//condicionales para calculos % estampacion
        
if($sin_impresion 1){
        if(
$tintas 1){
            
$sin_impresion = ($sin_impresion 1.05);
            }elseif (
$tintas 2){
                
$sin_impresion = ($sin_impresion 1.10);
                }elseif (
$tintas 3){
                    
$sin_impresion = ($sin_impresion 1.15);
                    }elseif (
$tintas 4){
                        
$sin_impresion = ($sin_impresion 1.2);
                        }elseif (
$tintas 5){
                            
$sin_impresion = ($sin_impresion 1.25);
                            }elseif (
$tintas 6){
                                
$sin_impresion = ($sin_impresion 1.3);
                                }elseif (
$tintas 7){
                                    
$sin_impresion = ($sin_impresion 1.35);
                                    }
        else (
$sin_impresion 0);
                    if(
$barniz 1){
                        
$sin_impresion = ($sin_impresion 1.4);
                        }else{
                            
$barniz 0;
                        }
        } 
  #2 (permalink)  
Antiguo 10/01/2016, 17:10
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: problema con $_POST y mysql

Código PHP:
Ver original
  1. <?php //condicionales para calculos % estampacion
  2.  
  3.         if($sin_impresion = 1){
  4.         if($tintas = 1){
  5.             $sin_impresion = ($sin_impresion * 1.05);
  6.             }elseif ($tintas = 2){
  7.                 $sin_impresion = ($sin_impresion * 1.10);
  8.                 }elseif ($tintas = 3){
  9.                     $sin_impresion = ($sin_impresion * 1.15);
  10.                     }elseif ($tintas = 4){
  11.                         $sin_impresion = ($sin_impresion * 1.2);
  12.                         }elseif ($tintas = 5){
  13.                             $sin_impresion = ($sin_impresion * 1.25);
  14.                             }elseif ($tintas = 6){
  15.                                 $sin_impresion = ($sin_impresion * 1.3);
  16.                                 }elseif ($tintas = 7){
  17.                                     $sin_impresion = ($sin_impresion * 1.35);
  18.                                     }
  19.         }
  20.         else if($sin_impresion = 0){
  21.                     if($barniz = 1){
  22.                         $sin_impresion = ($sin_impresion * 1.4);
  23.                         }else{
  24.                             $barniz = 0;
  25.                         }
  26.         }  
  27.  
  28.         ?>

Prueba así, no muestras en ningún momento tus variables post y cómo las recibes, pero tenías problemas en el código que muestras.

Edito. Ya vi dónde recibes los post, y se ve que esta bien. Los errores.
1.- Te faltaba cerrar llave del primer if.
2.- El else tenia un punto y coma al final de la instrucción.
3.- El else no lleva condicional, si necesitas ponerlo con condicional cambialo por "else if".
  #3 (permalink)  
Antiguo 11/01/2016, 14:25
 
Fecha de Ingreso: diciembre-2015
Mensajes: 36
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: problema con $_POST y mysql

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Código PHP:
Ver original
  1. <?php //condicionales para calculos % estampacion
  2.  
  3.         if($sin_impresion = 1){
  4.         if($tintas = 1){
  5.             $sin_impresion = ($sin_impresion * 1.05);
  6.             }elseif ($tintas = 2){
  7.                 $sin_impresion = ($sin_impresion * 1.10);
  8.                 }elseif ($tintas = 3){
  9.                     $sin_impresion = ($sin_impresion * 1.15);
  10.                     }elseif ($tintas = 4){
  11.                         $sin_impresion = ($sin_impresion * 1.2);
  12.                         }elseif ($tintas = 5){
  13.                             $sin_impresion = ($sin_impresion * 1.25);
  14.                             }elseif ($tintas = 6){
  15.                                 $sin_impresion = ($sin_impresion * 1.3);
  16.                                 }elseif ($tintas = 7){
  17.                                     $sin_impresion = ($sin_impresion * 1.35);
  18.                                     }
  19.         }
  20.         else if($sin_impresion = 0){
  21.                     if($barniz = 1){
  22.                         $sin_impresion = ($sin_impresion * 1.4);
  23.                         }else{
  24.                             $barniz = 0;
  25.                         }
  26.         }  
  27.  
  28.         ?>

Prueba así, no muestras en ningún momento tus variables post y cómo las recibes, pero tenías problemas en el código que muestras.

Edito. Ya vi dónde recibes los post, y se ve que esta bien. Los errores.
1.- Te faltaba cerrar llave del primer if.
2.- El else tenia un punto y coma al final de la instrucción.
3.- El else no lleva condicional, si necesitas ponerlo con condicional cambialo por "else if".
gracias por tu respuesta, he corregido el código como me has comentado, pero el formulario me sigue sin recoger el dato de la lista desplegable de tintas y el $_POST['tintas'] me recoge el dato perfectamente porque le estoy haciendo

Código PHP:
print_r($_POST['tintas']); 
y recoge el numero de tintas seleccionado de la lista desplegable, pero no lo inserta en la base de datos y creo que tampoco realiza los cálculos pertinentes por eso. Aquí dejo la consulta de insercción de datos

Código:
mysql_query ("INSERT INTO presupuesto (presupuesto_n,descripcion,alto,ancho,cantidad_etiquetas,cliente,aa,fecha,et_rollo,diametro,mandril,papel,salida,adhesivo,tintas,
			banda_papel,metros_lineales,metros_cuadrados,costo_papel,tiempo_tirada,tiempo_tirada_mas_preparacion,
			coste_tirada,coste_total,coste_millar,sin_impresion,costo_sinimpresion,barniz,grabados,cantidad_grabados,
			coste_troquel,estampacion,total_pedido,beneficio_bruto,coste_millar_mas_gastos,porcentaje_sinImpresion,porcentaje_estampacion,troquel) 
		VALUES ('$presupuesto_n','$descripcion','$alto','$ancho','$cantidad_etiquetas','$cliente','$aa','$fecha','$et_rollo','$diametro','$mandril','$papel','$salida','$adhesivo','$tintas',
				'$banda_papel','$metros_lineales','$metros_cuadrados','$costo_papel','$tiempo_tirada','$tiempo_tirada_mas_preparacion',
				'$coste_tirada','$coste_total','$coste_millar','$sin_impresion','$costo_sinimpresion','$barniz','$grabados','$cantidad_grabados','$coste_troquel',
				'$estampacion','$total_pedido','$beneficio_bruto','$coste_millar_mas_gastos','$porcentaje_sinImpresion','$porcentaje_estampacion','$troquel')");
no se me ocurre que fallo puede haber para que no haga la insercción de las tintas en la base de datos....siempre coge 1 tinta, aunque seleccione en la lista 5 por ejmplo... pero con
Código PHP:
print_r($_POST['tintas']); 
si veo que almacena bien el dato seleccionado de la lista.... ¿Qué puede estar pasando?

un saludo y gracias por la respuesta de ante mano
  #4 (permalink)  
Antiguo 11/01/2016, 14:45
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: problema con $_POST y mysql

No me había percatado, en los condicionales están asignado un valor a las variables. Para comparar necesitas el operador "==".

Añade eso a todas las líneas del if, elseif.

Por ejemplo
Código PHP:
Ver original
  1. if (1 == 1)
Y tu tienes
Código PHP:
Ver original
  1. if (1 = 1)

Saludos

Etiquetas: formulario, html, mysql, post, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:51.