Foros del Web » Programando para Internet » PHP »

Pasar datos de un campo select con MYSQL

Estas en el tema de Pasar datos de un campo select con MYSQL en el foro de PHP en Foros del Web. Hola, Recurro a ustedes, como siempre con dudas, el ser novato es lo que tiene. En fin, tengo un formulario con un campo "select" (lista ...
  #1 (permalink)  
Antiguo 01/06/2009, 17:14
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Pasar datos de un campo select con MYSQL

Hola,

Recurro a ustedes, como siempre con dudas, el ser novato es lo que tiene.

En fin, tengo un formulario con un campo "select" (lista desplegable) que hace una consulta a una tabla en MySQL de provincias, el caso es que cuando quiero recuperar el valor que he seleccionado de esa lista no me lo muestra.

Este es el codigo del campo select en el formulario:
Código PHP:
Ver original
  1. <td colspan="0"><p>Provincia</p></td><td>
  2. <? include("conectar.php");
  3. echo "<select name=‘provincia’ id=‘provincia’>";
  4. $sql=mysql_query("SELECT nombre_provincias FROM provincias ORDER by nombre_provincias ASC");
  5. echo "<option value=\"0\">---Seleccione Provincia---</option>";
  6. while($row=mysql_fetch_array($sql)) {
  7. echo "<option value=‘ $row[nombre_provincias] ‘>$row[nombre_provincias]</option>";
  8. }
  9. echo "</select>";
  10. ?></td>

Las provincias las muestra bien, pero cuando le doy a validar, no las muestra.

Este es el archivo que procesa los datos:
Código PHP:
Ver original
  1. <?
  2. if (!$_POST){
  3. ?>
  4. <?
  5. include("conectar.php");
  6. }else{
  7.     echo "Nombre: ". $_POST["cliente"];
  8.     echo "<br>DNI: ". $_POST["dni"];    
  9.     echo "<br>Direccion: ". $_POST["direccion"];
  10.     echo "&nbsp;&mdash;&nbsp;C.P.: ". $_POST["cp"];
  11.     echo "<br>E-mail: ". $_POST ["email"];
  12.     $provincia=$_POST["provincia"];
  13.     for ($i=0;$i<count($provincia);$i++)
  14.          {
  15.          echo "<br> Provincia " . $i . ": " . $provincia[$i];
  16.          }
  17.    }
  18. ?>
Los otros campos si los muestra bien, pero no la provincia. Ni siquiera llega a mostrar la etiqueta Provincia. Es un codigo que copie de una pagina de tutoriales ya que mis conocimientos no dan para más. Tengo otros campos "select" (listas) normales sin consultas a base de datos y me muestra nada mas que la inicial del valor seleccionado.

Las preguntas son ¿Que funcion tiene la variable $i?
¿Deberia hacer una nueva consulta?
¿Como puedo hacerlo?

Muchas gracias de antemano

Un saludo,

Editado 03/06/2009 20:19 SOLUCIONADO

Última edición por carscx; 03/06/2009 a las 12:20 Razón: He solucionado el problema
  #2 (permalink)  
Antiguo 01/06/2009, 17:21
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Pasar datos de un campo select con MYSQL

estás tratando a la variable provincia como si feura un array, cosa que no lo es, tarata como a las otras variables, ya que del combo seleccionas sólo una.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #3 (permalink)  
Antiguo 02/06/2009, 01:26
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Pasar datos de un campo select con MYSQL

Hola argy,

Gracias por tu respuesta tan rapida. El script le copie de un sitio que decia que seleccionaba varias cosas a la vez, pero imagine que con seleccionar una sola tambien valdria.
Cuando te refieres a tratarla como a otra variable ¿Te refieres a que lo trate como otro campo de texto normal?

Es decir, de esta manera.
Código PHP:
Ver original
  1. echo "<br>Provincia: ". $_POST ["provincia"];

Es que tambien lo he probado, pero no sale nada. No lo muestra.

Gracias otra vez

Un saludo,
  #4 (permalink)  
Antiguo 02/06/2009, 03:29
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Pasar datos de un campo select con MYSQL

Con "for" estás intentando recorrer la variable $provincia como un array, cuando es una variable única enviada por post...

Por ejemplo, suponiendo que $_POST ["provincia"]='Navarra' (o la que hayas seleccionado). En el select sólo eliges una provincia, por lo que no puedes tratarlo como si fuese un array de provincias.
  #5 (permalink)  
Antiguo 02/06/2009, 03:43
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Probare de nuevo asi, a ver que pasa y os cuento, muchas gracias.

Hola de nuevo, lo he probado y no funciona, he quitado el array ese, pero sigue igual, no se si tengo que hacer de nuevo la consulta o no.
Este es el archivo actual que recoge los datos del formulario. Espero me ayudeis. Muchas gracias.
Código PHP:
Ver original
  1. <?
  2.  
  3. if (!$_POST)
  4.  
  5. ?>
  6.  
  7. <?
  8. include('conectar.php');
  9.     echo "Nombre: ". $_POST['cliente'];
  10.  
  11.     echo "<br>DNI: ". $_POST['dni'];    
  12.     echo "<br>Direccion: ". $_POST['direccion'];
  13.     echo "&nbsp;&mdash;&nbsp;C.P.: ". $_POST['cp'];
  14.  
  15.     echo "<br>Provincia: ". $_POST ['provincia'];
  16.  
  17. ?>

Última edición por GatorV; 02/06/2009 a las 18:35
  #6 (permalink)  
Antiguo 03/06/2009, 01:29
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Pasar datos de un campo select con MYSQL

Puedes postear el codigo HTML que te imprime en pantalla el codigo del formulario??
  #7 (permalink)  
Antiguo 03/06/2009, 02:44
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Pasar datos de un campo select con MYSQL

Es el que posteo en el tema principal,

Código PHP:
Ver original
  1. <td colspan="0"><p>Provincia</p></td><td>
  2. <?
  3. include("conectar.php");
  4. echo "<select name=‘provincia’ id=‘provincia’>";
  5. $sql=mysql_query("SELECT nombre_provincias FROM provincias ORDER by nombre_provincias ASC");
  6. echo "<option value=\"0\">---Seleccione Provincia---</option>";
  7. while($row=mysql_fetch_array($sql)) {echo "<option value=‘ $row[nombre_provincias] ‘>$row[nombre_provincias]</option>";}echo "</select>";?></td>

Un saludo,
  #8 (permalink)  
Antiguo 03/06/2009, 02:47
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Pasar datos de un campo select con MYSQL

Me refiero al código HTML que te imprime el navegador, no al PHP del lado del servidor...
  #9 (permalink)  
Antiguo 03/06/2009, 02:51
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Pasar datos de un campo select con MYSQL

Ah, vale, ya se cual dices.

Ahora mismo no, pero esta noche cuando llegue a casa lo posteo. De todas formas, he estado mirando mas detenidamente, en esta linea no podria estar el fallo?
Código PHP:
echo "<option value=\"0\">---Seleccione Provincia---</option>"
Que el value, sea igual a cero. Porque creo que eso lo puse para el anterior script que lo trataba como un array. Que opinas?
Saludos,

P.D. Muchas gracias
  #10 (permalink)  
Antiguo 03/06/2009, 02:54
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Pasar datos de un campo select con MYSQL

Yo en los formularios suelo poner

Código HTML:
<option value="">Seleccione categoría...</option> 
Prueba de esa manera aunque no creo que ese sea el problema...
  #11 (permalink)  
Antiguo 03/06/2009, 02:58
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Pasar datos de un campo select con MYSQL

Sin asignar value, puedes hacer que ese campo sea requerido con JavaScript, ¿no?

Bueno, lo probare de esa manera, pero de todas formas, es que ahora estoy en el curro, y eso lo hago en casa, con mi maquina en local.

De verdad, muchas gracias por la ayuda.
  #12 (permalink)  
Antiguo 03/06/2009, 03:01
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Pasar datos de un campo select con MYSQL

Si, puedes hacer una validación javascript para que el campo no tenga value vacío...

Prueba y si no te funciona, postea el HTML

Un saludo
  #13 (permalink)  
Antiguo 03/06/2009, 07:48
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Pasar datos de un campo select con MYSQL

q raro q no ande...no veo nada raro..
Cuando puedas manda la salida del navegador
  #14 (permalink)  
Antiguo 03/06/2009, 12:13
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Pasar datos de un campo select con MYSQL

Bueno, acabo de llegar y lo he probado tal cual me lo habeis dicho y nada, el resultado no cambia, salvo porque ahora por no se que motivo aparece una comilla simple que antes no aparecia en el resultado final.

El codigo HTML generado por el navegador es el siguiente.

Código HTML:
Ver original
  1. Nombre: pepito<br>DNI: 12345678<br>Direccion: Calle de aqui al lado&nbsp;&mdash;&nbsp;C.P.: 01234<br>Provincia:

Por cierto uso, Apache+PHP5+MySQL con el paquete Xampp para Linux Ubuntu 9.04 el navegador es Firefox 3.0.10

Saludos, y gracias.
  #15 (permalink)  
Antiguo 03/06/2009, 12:19
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Pasar datos de un campo select con MYSQL

SOLUCIONADO! o eso creo ¿Os acordáis de que he dicho un poco mas arriba que el "0" ese del value no me daba buena espina?

Pues bien, lo he quitado, y justo. Era ese el problema. La cuestion era que al tener un js que hace que sea requerido indicar la provincia y el valor estaba en cero lo dejaba pasar. Ya me extrañaba a mi que no saltase la ventanita de "Debe intrducir la provincia".

En fin muchas gracias de nuevo. Sois los mejores.

Gracias de verdad :D:D:D
  #16 (permalink)  
Antiguo 04/06/2009, 01:05
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Pasar datos de un campo select con MYSQL

Jejeje, ya te dije que por si acaso quitaras el "0"...

Además si tenías un validador javascript...

Me alegro de que te funcione.

Un saludo
  #17 (permalink)  
Antiguo 04/06/2009, 01:41
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Pasar datos de un campo select con MYSQL

Muchisimas gracias danielrivas por tu paciencia con este novato. GRacias ;)
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL
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 00:31.