Foros del Web » Programando para Internet » PHP »

¿Pierdo datos de 2 elementos SELECT de un formulario ?

Estas en el tema de ¿Pierdo datos de 2 elementos SELECT de un formulario ? en el foro de PHP en Foros del Web. Como hago para que no se me pierdan los datos que escojo de los select; estos select hace una consulta cada uno a una tabla ...
  #1 (permalink)  
Antiguo 12/08/2008, 17:12
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 18 años, 6 meses
Puntos: 0
¿Pierdo datos de 2 elementos SELECT de un formulario ?

Como hago para que no se me pierdan los datos que escojo de los select; estos select hace una consulta cada uno a una tabla externa donde traen esos datos los cuales veo perfectamente y escojo.

Al comprobar que he hecho el submit imprimiendo mi arreglo $_POST veo que hasta ahí están bien, es al momentos de traerlos del formulario y guardarlos en las variables para enviarlos a la Base de datos.

Imprimiendo lo que enviare a la base de datos veo que me falta los campos que son los select.

Soy algo novato y no logro ver el berraco error.

Aquí esta el código completo.

Código PHP:

<?php
/*
if($_POST) {
    print_r($_POST);
}
*/

// Si el formulario ha sido enviado insertamos el registro

if(isset($_POST['submit'])) {
     
    include(
"includes/config.php");
    include(
"includes/funciones.php");
    
$cnx conectar();
    
$campos "id_genero, id_pais, nombre_banda, descripcion";
    
    
$valores "'".$_POST['genero']."',";
    
$valores .= "'".$_POST['pais']."',";
    
$valores .= "'".$_POST['nombrebanda']."',";    
    
$valores .= "'".$_POST['descripcion']."'";
    
    
$sql "INSERT INTO bandas ($campos) VALUES ($valores)";
    
$res mysql_query($sql)or die(mysql_error());
    echo 
"Registro ingresado.<br><a href='listado_bandas.php'>listado de bandas</a>";
    
mysql_close($cnx);
    exit;
}

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Insertar Banda</title>
<link href="contacto.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form name="form1" method="post" action="">
  <p>Genero:<br />
    <select name="genero" id="genero">
      <option value="">Escoger de la lista</option>
         <?php
           
include("includes/config.php");
           include(
"includes/funciones.php");
    
           
// Nos conectamos a mysql
           
$idcnx conectar(); 
           
           
$sqlQueryGenero mysql_query("SELECT * FROM generos_musicales") or die(mysql_error);
    
           
// creamos un bucle while que nos muestre todas las categorias que tenemos guardadas en la BD
           
while($rowGen mysql_fetch_array($sqlQueryGenero)){
                echo 
"<option value='$rowGen[id_genero]'>$rowGen[nombre_genero]</option>";
           }
         
?>
    </select>
  </p>
  
<p>Pais:<br />
    <select name="pais" id="pais">
      <option value="">Escoger de la lista</option>
         <?php           
           $sqlQueryPais 
mysql_query("SELECT * FROM pais") or die(mysql_error);
    
           
// creamos un bucle while que nos muestre todos los paises que tenemos guardados en la BD
           
while($rowPais mysql_fetch_array($sqlQueryPais)){
                echo 
"<option value='$rowPais[id_pais]'>$rowPais[nombre_pais]</option>";
           }
         
?>
    </select>
  </p>
  
  <p>Nombre de la banda:<br />
  <input type="text" name="nombrebanda" id="nombrebanda" /><br />
  </p>

  <p>Descripción de la banda:<br />
  <input type="text" name="descripcion" id="descripcion" /><br />
  </p>      

  <p>
    <input type="submit" name="submit" value="Enviar" />
  </p>
</form>
<?php 
mysql_close
($idcnx);
exit;
?>
</body>
</html>

Última edición por jpunk; 12/08/2008 a las 22:11
  #2 (permalink)  
Antiguo 12/08/2008, 17:30
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: ¿Pierdo datos de 2 elementos SELECT de un formulario ?

Bueno tenia un ligenro error y ahora si recojo todos los campos, pero no me los inserta en la base de datos.

Código PHP:
if(isset($_POST['submit'])) { 

    
$campos "id_genero, id_pais, nombre_banda, descripcion"
     
    
$valores "'".$_POST['genero']."',";  // era el error
    
$valores .= "'".$_POST['pais']."',";     // era el error
    
$valores .= "'".$_POST['nombrebanda']."',";     
    
$valores .= "'".$_POST['descripcion']."'"
     
    echo 
"valores: ".$valores
    
/* 
    $sql = "INSERT INTO bandas ($campos) VALUES ($valores)"; 
    $res = mysql_query($sql)or die(mysql_error()); 
    echo "Registro ingresado.<br><a href='listado_bandas.php'>listado de bandas</a>"; 
    mysql_close($idcnx); 
    exit; 
    */ 

debere crear una nueva conexion. parece que lo requieria, pero es en el mismo archivo por eso lo dudo ya que esta abierta la conexion y es a la misma base de datos, y funciona bien ya que de ahi es donde recojo los campos de los select.
  #3 (permalink)  
Antiguo 12/08/2008, 19:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ¿Pierdo datos de 2 elementos SELECT de un formulario ?

Para que te los inserte en la base de datos debes de descomentar las lineas referentes a eso.

Saludos.
  #4 (permalink)  
Antiguo 12/08/2008, 22:02
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 18 años, 6 meses
Puntos: 0
De acuerdo Respuesta: ¿Pierdo datos de 2 elementos SELECT de un formulario ?

Hey Gator si eso pareceria con el código que puse, pero fue que coloque ese código cuando estaba examinando con un ECHO si llegaban los datos hasta ahí.

el caso es que ya lo edite y esta posteado el codigo que funciona bién, pero me deja dudas con respecto a si no es tan eficiente.

Bueno ya lo logre así, dentro del if(isset($_POST['submit'])) {
// vuelvo a colocar los includes y hacer la conexion.
y luego de insertar en la base de datos cierro la conexion
}

La pregunta ahora es:

esto es recoomendado hacerlo, o como deberia de hacer para no estar haciendo
includes y creando conexiones y cerrandolas.

Gracias.

Última edición por jpunk; 12/08/2008 a las 22:16
  #5 (permalink)  
Antiguo 13/08/2008, 08:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ¿Pierdo datos de 2 elementos SELECT de un formulario ?

Lo ideal es que solo crees una conexión al inicio y la cierres al final de tu script.

Saludos.
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 11:07.