Foros del Web » Programando para Internet » PHP »

Formulario php y mysql

Estas en el tema de Formulario php y mysql en el foro de PHP en Foros del Web. Hola! Estoy en la fase de hacer un formulario con php y mysql. Tengo en la base de datos dos tablas una donde salen las ...
  #1 (permalink)  
Antiguo 18/10/2010, 03:21
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 15 años
Puntos: 5
Pregunta Formulario php y mysql

Hola!

Estoy en la fase de hacer un formulario con php y mysql.

Tengo en la base de datos dos tablas una donde salen las ciudades de España con sus id (idciudad), y otra tabla llamada información donde quiero almacenar la idciudad mediante formulario php.

Me explico:
El formulario quiero que contenga un campo desplegable , y que realizando una consulta a la tabla ciudades me las imprima en ese campo todas, de tal forma que al pinchar el usuario en la ciudad me guarde su idciudad en la base de datos dentro de la tabla información, en el campo idciudad.

Básicamente que coja la idciudad de la tabla ciudades y la meta en la tabla informacion dentro de su campo idciudad.

Espero haberme explicado bien...

Gracias de antemano!
  #2 (permalink)  
Antiguo 18/10/2010, 09:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tema movido desde Configuración PHP a PHP
  #3 (permalink)  
Antiguo 18/10/2010, 10:05
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Formulario php y mysql

Código PHP:
Ver original
  1. <select name="ciudad">
  2.                <?php
  3.             $sql = "select * from ciudades";
  4.             $ql = mysql_query($sql,$conn) or die(mysql_error());
  5.             while($g = mysql_fetch_array($ql)){
  6.             echo '<option value="'.$g['idciudad'].'">'.$g['ciudad'].'</option>';
  7.             }
  8.             ?>
  9. </select>

y despues en el archivo donde procesaras los datos unicamente deberas de recuperarlo asi:

$ciudad = $_POST['ciudad']

espero te sirva saludos
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #4 (permalink)  
Antiguo 18/10/2010, 12:20
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 15 años
Puntos: 5
Respuesta: Formulario php y mysql

Hola zapt142,

he intentado hacer lo que me has recomendado, pero no surge efecto, ten en cuenta que soy muy, muy novato...
Paso el código tal cual lo tengo ahora:

Por cierto, no he entendido eso de "y despues en el archivo donde procesaras los datos unicamente deberas de recuperarlo asi:

$ciudad = $_POST['ciudad']"

Siento no entender más...

Código PHP:
<?php

//Conexion con la base
mysql_connect("localhost","root","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("web");

?>

<FORM METHOD="POST" ACTION="insertar.php">

<select name="ciudad">
      
<?php

    $sql 
"select * from ciudades";
                  
    
$ql mysql_query($sql,$conn) or die(mysql_error());
                  
    while(
$g mysql_fetch_array($ql)){

    echo 
'<option value="'.$g['ciudadid'].'">'.$g['nombreciudad'].'</option>';
                  
    }

?>

</select>
</FORM>
  #5 (permalink)  
Antiguo 18/10/2010, 12:40
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Formulario php y mysql

pero que es lo que no entiendes como recuperar los datos?..

"y despues en el archivo donde procesaras los datos unicamente deberas de recuperarlo asi:

$ciudad = $_POST['ciudad']"


esto quiere decir que en el archivo insertar.php que esta en el action del form
<FORM ACTION="insertar.php">
debes recuperar el valor del select mediante $_POST que es el metodo elejido en el formulario.

<FORM METHOD="POST"
si tienes mas dudas comenta
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #6 (permalink)  
Antiguo 18/10/2010, 14:18
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 15 años
Puntos: 5
Respuesta: Formulario php y mysql

Este es mi código php con html:

Código PHP:
<?php
if(isset($_POST['idciudad']) && !empty($_POST['ciudad']))  {

    
// Si entramos es que todo se ha realizado correctamente

//Conexion con la base
mysql_connect("localhost","","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ernesto_coches");
    
//Ejecucion de la sentencia SQL
mysql_query("insert into coches (idciudad) values ('$idciudad')");

    
// Ahora comprobaremos que todo ha ido correctamente
    
$my_error mysql_error;

}
    if(!empty(
$my_error) {

    echo 
"Ha habido un error al insertar los valores. $my_error"

      } else {

   echo 
"Los datos han sido introducidos satisfactoriamente";


     } else {

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

    }

?>
En el primero directamente no me coge las ciudades que tengo en la base de datos, solo me sale un desplegable muy pequeño (vacio, sin contenido)...

Y ya no hablemos del segundo, donde quiero que me lo inserte en la otra tabla, pero si ni siquiera me lo muestra en el primero...
  #7 (permalink)  
Antiguo 18/10/2010, 14:53
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Formulario php y mysql

muestrame tu codigo tanto de tu formulario como donde insertas en la base de datos
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #8 (permalink)  
Antiguo 18/10/2010, 14:56
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 15 años
Puntos: 5
Respuesta: Formulario php y mysql

Perdona que se me había olvidado el primero...

Este es mi código php con html:

Código PHP:
<?php

//Conexion con la base
mysql_connect("localhost","","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ernesto_coches");

?>

<FORM METHOD="POST" ACTION="insertar.php">

<select name="ciudad">
      
<?php

    $sql 
"select * from ciudades";
                  
    
$ql mysql_query($sql,$conn) or die(mysql_error());
                  
    while(
$g mysql_fetch_array($ql)){

    echo 
'<option value="'.$g['idciudad'].'">'.$g['ciudad'].'</option>';
                  
    }

?>

</select>
</FORM>
Y este el que en teoría tiene que hacer que guarde los datos escogidos en el primero dentro de otra tabla llamada coches:

Código PHP:
<?php
if(isset($_POST['idciudad']) && !empty($_POST['ciudad']))  {

    
// Si entramos es que todo se ha realizado correctamente

//Conexion con la base
mysql_connect("localhost","","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ernesto_coches");
    
//Ejecucion de la sentencia SQL
mysql_query("insert into coches (idciudad) values ('$idciudad')");

    
// Ahora comprobaremos que todo ha ido correctamente
    
$my_error mysql_error;

}
    if(!empty(
$my_error) {

    echo 
"Ha habido un error al insertar los valores. $my_error"

      } else {

   echo 
"Los datos han sido introducidos satisfactoriamente";


     } else {

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

    }

?>
En el primero directamente no me coge las ciudades que tengo en la base de datos, solo me sale un desplegable muy pequeño (vacio, sin contenido)...

Y ya no hablemos del segundo, donde quiero que me lo inserte en la otra tabla, pero si ni siquiera me lo muestra en el primero...
  #9 (permalink)  
Antiguo 18/10/2010, 15:34
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Formulario php y mysql

Primero cual es la estructura de tu tabla de las ciudades por favor posteala y segundo no te inserte nada ya que la variable $idciudad nunca la inicializas es decir no le asignas un valor si quieres insertar en la base de datos entonces seria asi:
Código HTML:
$idciudad = $_POST['ciudad']
, date cuenta que recupero el nombre del select no del option del formulario
y tu validación sería de la siguiente manera:

Código PHP:
<?php
if(isset($_POST['ciudad']) && !empty($_POST['ciudad']))  {

    
// Si entramos es que todo se ha realizado correctamente

//Conexion con la base
$link mysql_connect("localhost","","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ernesto_coches",$link);
    
//Ejecucion de la sentencia SQL
$idciudad $_POST['ciudad'];
mysql_query("insert into coches (idciudad) values ('$idciudad')") or die (mysql_error());
se me olvidada si el id es entero, no le pongas comilla porq lo tratara como texto
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #10 (permalink)  
Antiguo 19/10/2010, 02:24
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 15 años
Puntos: 5
Respuesta: Formulario php y mysql

Sigue sin mostrar en el desplegable el nombre de las dos ciudades de prueba que tengo.
Te dejo la estructura de la base de datos:

Código PHP:
--
-- 
Estructura de tabla para la tabla `ciudades`
--

CREATE TABLE IF NOT EXISTS `ciudades` (
  `
idciudadint(10NOT NULL AUTO_INCREMENT,
  `
ciudadvarchar(30NOT NULL,
  
PRIMARY KEY (`idciudad`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=;

--
-- 
Volcar la base de datos para la tabla `ciudades`
--

INSERT INTO `ciudades` (`idciudad`, `ciudad`) VALUES
(1'A Coruña'),
(
2'Álaba'); 
Gracias por ayudarme!! me esta volviendo loco...
  #11 (permalink)  
Antiguo 19/10/2010, 02:48
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 15 años
Puntos: 5
Respuesta: Formulario php y mysql

Hola de nuevo zapt142, ya encontré el error!

Pego el código para los código correctos por si les puede servir a alguien!

Código PHP:
<?php

//Conexion con la base
$link mysql_connect("localhost","","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ernesto_coches",$link);

?>

<FORM METHOD="POST" ACTION="insertar.php">

<select name="ciudad">
      
<?php

    $sql 
"select * from ciudades";
                  
    
$ql mysql_query($sql,$link) or die(mysql_error());
                  
    while(
$g mysql_fetch_array($ql)){

    echo 
'<option value="'.$g['idciudad'].'">'.$g['ciudad'].'</option>';
                  
    }

?>
<INPUT TYPE="SUBMIT" value="Insertar">
</select>
</FORM>
Código php:

Código PHP:
<?php
if(isset($_POST['ciudad']) && !empty($_POST['ciudad']))  {

    
// Si entramos es que todo se ha realizado correctamente

//Conexion con la base
$link mysql_connect("localhost","","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ernesto_coches",$link);
    
//Ejecucion de la sentencia SQL
$idciudad $_POST['ciudad'];
mysql_query("insert into coches (idciudad) values ('$idciudad')") or die (mysql_error());
 
}

?>
Solo darte las gracias por todo!! he aprendido un montón! jejejej!
Aunque creo que nos volveremos a ver...solo he aprendido una parte de la inmensa web que intento montar!!

Etiquetas: formulario
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 03:20.