Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/02/2014, 17:15
raulgranadosraul
 
Fecha de Ingreso: julio-2013
Mensajes: 174
Antigüedad: 11 años, 4 meses
Puntos: 1
Insertar a BD con menú desplegable

Hola amigos del web.
Tengo un problema al hacer un INSERT a la BD en el que tengo un menú desplegable. Os cuento.

He puesto un desplegable en un form para insertar una cita en mi BD y en el desplegable aparecen todos los clientes mostrando apellidos, nombre. Al hacer el insert siempre me guarda en la BD el mismo nombre y apellidos. Ademas en la tabla tengo un campo que se llama idNombre donde debo pasar el id del cliente que selecciono en el menú desplegable.

El hecho es que me hace el INSERT pero siempre me inserta el primer cliente, inserta bien los campos pero siempre los datos del primero.

Les paso el código a ver si me pueden echar una mano con esto.
Se que hace tiempo lo hice pero me falla la memoria ahora mismo y no encuentro respuesta.

EL FORM
Código HTML:
Ver original
  1. <form action="<?php echo $row_Desplegable_clientes['']; ?>" method="post" name="form9" id="form9">
  2.   <table align="center">
  3.     <tr valign="baseline">
  4.       <td nowrap="nowrap" align="right">Nombre: </td>
  5.       <td><select name="Clientes" id="Clientes">
  6.         <?php
  7. do {  
  8. ?>
  9. <?php
  10. $apellidos=$row_Desplegable_clientes['txtApellidos'];
  11. $nombre=$row_Desplegable_clientes['txtNombre'];
  12. ?>
  13.         <option value="<?php echo $row_Desplegable_clientes['idCliente']?>"><?php echo $apellidos.", ".$nombre?></option>
  14.         <?php
  15. } while ($row_Desplegable_clientes = mysql_fetch_assoc($Desplegable_clientes));
  16.  $rows = mysql_num_rows($Desplegable_clientes);
  17.  if($rows > 0) {
  18.       mysql_data_seek($Desplegable_clientes, 0);
  19.       $row_Desplegable_clientes = mysql_fetch_assoc($Desplegable_clientes);
  20.   }
  21. ?>
  22.       </select></td>
  23.     </tr>
  24.     <tr valign="baseline">
  25.       <td nowrap="nowrap" align="right">Tratamiento: </td>
  26.       <td><input type="text" name="txtTratamiento" value="" size="32" /></td>
  27.     </tr>
  28.     <tr valign="baseline">
  29.       <td nowrap="nowrap" align="right">Comentario: </td>
  30.       <td><input type="text" name="txtComentario" value="" size="32" /></td>
  31.     </tr>
  32.     <tr valign="baseline">
  33.       <td nowrap="nowrap" align="right">Día: </td>
  34.       <td><input type="text" name="datDia" value="" size="32" /></td>
  35.     </tr>
  36.     <tr valign="baseline">
  37.       <td nowrap="nowrap" align="right">Hora: </td>
  38.       <td><input type="text" name="txtCita" value="" size="32" /></td>
  39.     </tr>
  40.     <tr valign="baseline">
  41.       <td nowrap="nowrap" align="right">&nbsp;</td>
  42.       <td>
  43.       <input type="submit" value="Insertar registro" />
  44.       </td>
  45.     </tr>
  46.   </table>
  47.   <input type="hidden" name="idNombre" value="<?php echo $row_Desplegable_clientes['idCliente']; ?>" />
  48.   <input type="hidden" name="txtNombre" value="<?php echo $row_Desplegable_clientes['txtNombre']; ?>" />
  49.   <input type="hidden" name="txtApellidos" value="<?php echo $row_Desplegable_clientes['txtApellidos']; ?>" />
  50.   <input type="hidden" name="MM_insert" value="form9" />
  51. </form>

EL INSERT
Código PHP:
Ver original
  1. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form9")) {
  2.   $insertSQL = sprintf("INSERT INTO Citas_tbl (idCita, txtNombre, txtApellidos, txtTratamiento, txtComentario, datDia, txtCita, idNombre) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
  3.                        GetSQLValueString($_POST['idCita'], "int"),
  4.                        GetSQLValueString($_POST['txtNombre'], "text"),
  5.                        GetSQLValueString($_POST['txtApellidos'], "text"),
  6.                        GetSQLValueString($_POST['txtTratamiento'], "text"),
  7.                        GetSQLValueString($_POST['txtComentario'], "text"),
  8.                        GetSQLValueString($_POST['datDia'], "date"),
  9.                        GetSQLValueString($_POST['txtCita'], "text"),
  10.                        GetSQLValueString($_POST['idNombre'], "int"));

Yo he estado dándole un montón de vueltas porque el error creo que debe estar en el menú, que estoy mostrando dos campos (apellidos, nombre) y al hacer el INSERT como que no encuentra los campos por separado y lo hace mal.

Aunque si que guarda los apellidos en los apellidos, el nombre en el nombre, y el idCliente en el idNombre .... pero con los valores del primer cliente siempre.

Muchas gracias por adelantado. Estaré conectado por aqui.