Help - Formulario PHP & MySQL

Ferucho

Bovino adicto
#1
Solucionado - Formulario PHP & MySQL

Solucionado...

Muchas gracias a los que me apoyaron, ya lo logré, para los que vean este problema con el que me enfrenté déjenme decirles que lo solucioné con variables de sesión en PHP.

De nuevo muchas gracias, en especial a dreamsweaver que me ayudo bastante, gracias! ;)

Subiré el código cuando terminé mi trabajo seguro le servirá a alguien, todavía hacen falta algunas cosas :D

__________________________________________________________________
Hola, buen día.
Necesito su ayuda con unos formularios en PHP, les explico:

El cliente debe seleccionar primero la tienda.

PHP:
<form method="post" action="requi.php">
    Tienda:<br><select name="tienda" size="1">
            	<option value="Aurrera" selected>Aurrera</option>
                <option value="Soriana">Soriana</option>
                <option value="Walmart">Walmart</option>
                <option value="Liverpool">Liverpool</option>
                <option value="F. Francia">F. Francia</option>
                <option value="Copel">Copel</option>
                <option value="C. Mexicana">C. Mexicana</option>
                <option value="Chedraui">Chedraui</option>
                </select> <br><br>
    	<input type="submit" value="Enviar">
    </form>
Como verán lo estoy enviando a un archivo en PHP (requi.php) y en ese no se como hacer que se guarde la variable, lo que le puse fue:

PHP:
<?php
//almacenar la tienda
$prueba = $_POST['tienda'];//creo que aquí toy mal
 
?>
//no se me ocurrió otra forma de redireccionar...
<meta http-equiv="Refresh" content="1;url=klasst.html">
luego me redirecciona a otro formulario donde tengo que meter los demás datos y debe existir la posibilidad de enviar los datos sin seleccionar la tienda. Este es el código del otro FORM:

PHP:
<form name="datosklass" action="insertar_datos.php" method="post">
			                 
            <!--<input type="text" name="tienda" required><br>-->
			Sabor:<br><select name="sabor" size="1">
            	<option value="Horchata" selected>Horchata</option>
                <option value="Jamaica">Jamaica</option>
                <option value="Tamarindo">Tamarindo</option>
                <option value="Mango">Mango</option>
                <option value="Melon">Melon</option>
                <option value="Piña">Piña</option>
                <option value="Naranja">Naranja</option>
                <option value="Limonada">Limonada</option>
                </select>
            Piso:<br><select name="piso" size="1">
            	<option value="0" selected>0</option>
                <option value="1">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>
                <option value="9">9</option>
                <option value="10">10</option>
                </select>
            Bodega:<br><select name="bodega" size="1">
            	<option value="0" selected>0</option>
                <option value="1">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>
                <option value="9">9</option>
                <option value="10">10</option>
                </select>
            Ventas:<br><input type="number" name="ventas" required><br>
            <!--Fecha:<br><input type="datetime-local" name="fecha" required>-->
            <br><br>
          
		<input type="submit" value="Enviar">
		</form>

Y el otro archivo al que se envían los datos queda como:

PHP:
<?php

// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
if(isset($_POST['sabor']) && !empty($_POST['sabor'])
&& isset($_POST['piso']) && !empty($_POST['piso'])
&& isset($_POST['bodega']) && !empty($_POST['bodega'])
&& isset($_POST['ventas']) && !empty($_POST['ventas'])) {

// Si entramos es que todo se ha realizado correctamente

$link = mysql_connect("server","user","passs");
mysql_select_db("database",$link);
 
//para la tienda, aquí es donde supongo que está el error...
 reqiere_once("requi.php");
 
 //para la fecha
 $fecha = date("Y-m-d-h-s-s");
 
 $prueba = ($_POST['sabor']);//creo que ya no va...
 
//para sacar automáticamente el SKU, no me funcionó... ¿que falló?
 switch  ($prueba) {
	case Horchata:
			$sku = "754177500428"; 
		break;
	case Jamaica:
			$sku = "754177500435"; 
		break;
	case Tamarindo:
			$sku = "754177500442";  
		break;
	case Mango: 
			$sku = "754177500473"; 
		break;
	case Melon: 
			$sku = "754177500459"; 
		break;
	case Piña:
			$sku = "754177500466"; 
		break;
	case Naranja: 
			$sku = "754177502224"; 
		break;
	case Limonada: 
			$sku = "754177502217"; 
		break;
 }
 
// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO klases (tienda,sabor,piso,bodega,ventas,fecha,sku)
VALUES ('$tienda','{$_POST['sabor']}','{$_POST['piso']}','{$_POST['bodega']}','{$_POST['ventas']}','$fecha','$sku')",$link);

// Ahora comprobaremos que todo ha ido correctamente
$my_error = mysql_error($link);

if(!empty($my_error)) {

header ('Location: eInsertar.html');

} else {

header ('Location: klasst.html'); 

}

} else {

echo "Error, no ha introducido todos los datos";

}
?>
Entonces si todo está bien me pide los datos de nuevo (pero no la tienda, esa debe almacenarse... pero no, me aparece un error: "Fatal error: Call to undefined function reqiere_once()".

Debo hacer que cuando el cliente seleccione un sabor el SKU del producto se almacene automáticamente en la base de datos, lo hice con el switch pero no me aparecen los números bien...

Gracias a dreamsweaver ya esta solucionado lo del SKU :vientos:

con lo del SKU me imagino que en la base de datos lo ocupaste como INT, te recomiendo que lo user como char o varchar y lo limites al numero de caracteres maximos del id, a me sucedio lo mismo le ingresaba una fecha generada automaticamante como id y en mysql me la transformaba al usarla como INT, así lo solucione usando varchar o char.

No se como hacerle, ojalá que pueda alguien ayudarme, muchas gracias desde ya :D
 
#2
Hola bakuno, mira, porque no te ahorras un paso y en vez de mandarlo a reqi.php no lo mandas de una sola vez a la otra página del formulario?

Y ya que lo tengas ahi lo mandas en un <input type="hidden" name="tienda" value="$prueba" /> y ya no ocupas el reqire_once("requi.php") sino que ocupas la variable que mandaste oculta.
 

Ferucho

Bovino adicto
#3
Hola bakuno, mira, porque no te ahorras un paso y en vez de mandarlo a reqi.php no lo mandas de una sola vez a la otra página del formulario?

Y ya que lo tengas ahi lo mandas en un <input type="hidden" name="tienda" value="$prueba" /> y ya no ocupas el reqire_once("requi.php") sino que ocupas la variable que mandaste oculta.
Ya lo había pensado pero no quiero utilizar nada de PHP en mi HTML...

De todos modos lo voy a implementar... espero que puedas ayudarme con lo del SKU

Ah! pero supongo que entonces quedaría lo que me mandaste como: <input type="hidden" name="tienda" value="($_POST['tienda'])"
 
#4
con lo del SKU me imagino que en la base de datos lo ocupaste como INT, te recomiendo que lo user como char o varchar y lo limites al numero de caracteres maximos del id, a me sucedio lo mismo le ingresaba una fecha generada automaticamante como id y en mysql me la transformaba al usarla como INT, así lo solucione usando varchar o char.
 

Ferucho

Bovino adicto
#5
con lo del SKU me imagino que en la base de datos lo ocupaste como INT, te recomiendo que lo user como char o varchar y lo limites al numero de caracteres maximos del id, a me sucedio lo mismo le ingresaba una fecha generada automaticamante como id y en mysql me la transformaba al usarla como INT, así lo solucione usando varchar o char.
Vale, muchas gracias!!! lo hare y te digo que onda. :D
 

Ferucho

Bovino adicto
#6
Ah! pero supongo que entonces quedaría lo que me mandaste como: <input type="hidden" name="tienda" value="($_POST['tienda'])"

Gracias de nuevo...
 
#7
Mira sino quieres mezclar el php y el html puedas hacer varias cosas, una es que en el momento de escoger la tienda la mandes via url a la página de los sabores y todo eso, cuando haces el redireccionamento en require agrega la url?tienda=$prueba, lo otro es que intentes con ajax, ya que con esto no mezclas el html con el php...
 
#9
Tengo una duda no es recomendable mezclar el php con el html??
Es recomendable separar la presentacion(HTML) de la lógica (PHP), pero es necesario hacer ciertas mezclas, por ejemplo, cuando usas sesiones, cookies tienes que mezclar código php en el html, además es muy común hacer esta mezcla, pero como te decia es recomendable separar el codigo para una mejor lectura y comprensión del codigo.
 

Ferucho

Bovino adicto
#10
Me sigue apareciendo el "Fatal error: Call to undefined function reqiere_once()" con lo del requi.php

Para que lo almacene en PHP sin poner todo lo que puse como me aconsejas hacerle?

yo tengo en el requi.php:

PHP:
<?php

// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
if(isset($_POST['tienda']) && !empty($_POST['tienda']) ) {


 //almacenar la tienda... creo
 $tienda = $_POST['tienda'];
 
}
?>

<meta http-equiv="Refresh" content="1;url=klasst.html?tienda=$tienda">
mmm.... que estará mal?
 
#11
Esto: <meta http-equiv="Refresh" content="1;url=klasst.html?tienda=$tienda"> esto esta fuera de PHP y estas mandando una variable php, tendrias que hacerlo asi:
//Adentro del PHP
header("location:klasst.html?tienda=".$tienda);
 

Ferucho

Bovino adicto
#12
Esto: <meta http-equiv="Refresh" content="1;url=klasst.html?tienda=$tienda"> esto esta fuera de PHP y estas mandando una variable php, tendrias que hacerlo asi:
//Adentro del PHP
header("location:klasst.html?tienda=".$tienda);
Vale, entonces quitaré todo? y sólo dejo el "header"? Ya lo estoy probando... gracias de nuevo!
 

Ferucho

Bovino adicto
#13
Ya lo probé...

Me sigue mandando este error:
Fatal error: Call to undefined function reqiere_once() in /htdocs/insertar_datos.php on line 15

y la linea 15 en donde estoy llamando al requi.php con reqiere_once("requi.php");

Aquí es cuando me pongo a llorar.. jajajajaa
 

Ferucho

Bovino adicto
#14
Dreamsweaver, muchas gracias!!! ya quedó lo del SKU, tenias razón, sólo tenia que cambiar en la base de datos a varchar! Gracias MAESTRO!
 
#15
Esq ahora ya no necesitas mandar a llamar al require_once("reqi.php");
Ahora puedes ver que en la url está la tienda, entonces lo que tienes que hacer es tomar de la url el valor de la tienda y ahora puedes mandarlo oculto en el formulario hacia el almacenamiento de la base de datos y para tomar el valor de la url lo puedes hacer con javascript, asi no mezclas php y html ;)
 

Ferucho

Bovino adicto
#16
Esq ahora ya no necesitas mandar a llamar al require_once("reqi.php");
Ahora puedes ver que en la url está la tienda, entonces lo que tienes que hacer es tomar de la url el valor de la tienda y ahora puedes mandarlo oculto en el formulario hacia el almacenamiento de la base de datos y para tomar el valor de la url lo puedes hacer con javascript, asi no mezclas php y html ;)
No manches... soy un novato total... puedo, digo... sino es mucha molestia y si se puede enviarte mi trabajo para que lo revises? no pediría esto pero es urgente... si? please.... si se puede me dices para mandartelo por MP

Gracias y disculpa...
 
#19
No manches... soy un novato total... puedo, digo... sino es mucha molestia y si se puede enviarte mi trabajo para que lo revises? no pediría esto pero es urgente... si? please.... si se puede me dices para mandartelo por MP

Gracias y disculpa...
Ok, pero te lo regresaré en la tarde xq tengo que hacer unsa cosas acá adonde estoy ;)
 
Arriba