elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Consulta para insertar en vez de ID su nombre asociado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Consulta para insertar en vez de ID su nombre asociado  (Leído 2,348 veces)
the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Consulta para insertar en vez de ID su nombre asociado
« en: 18 Abril 2013, 13:06 pm »

Saludos amigos!
Tengo  una consulta insert que inserta el valor ID de un registro, y quisiera saber que puedo hacer para que al recibir ese valor ID lo asocie con su nombre y envíe a la base de datos solo el nombre, y no el ID.

Un saludo y espero sus respuestas


En línea

Rebélate
WHK
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.561


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Consulta para insertar en vez de ID su nombre asociado
« Respuesta #1 en: 18 Abril 2013, 14:12 pm »

Así?

Código
  1. $id = 50;
  2. $sql = 'insert into tabla (nombre) values ((select nombre from personas where id = '.(int)$id.' limit 1))';


En línea

- Telegram: @WHK102 - Website: https://yhojann.cl/
the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Consulta para insertar en vez de ID su nombre asociado
« Respuesta #2 en: 18 Abril 2013, 14:23 pm »

Así?

Código
  1. $id = 50;
  2. $sql = 'insert into tabla (nombre) values ((select nombre from personas where id = '.(int)$id.' limit 1))';
Código
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. </head>
  6.  
  7. <body>
  8. <?php
  9. $c=mysql_connect("localhost","root","");
  10. mysql_select_db("clientes",$c);
  11.  
  12. //$provincia se obtiene de un select, cuyo valor es el id_provincia
  13. $provincia = $_POST['lst1'];
  14. echo "La provincia seleccionada es ",$provincia;
  15. echo "<br>";
  16.  
  17. $poblacion = $_POST['lst2'];
  18. echo "La población seleccionada es ",$poblacion;
  19. echo "<br>";
  20.  
  21. //La siguiente línea es lo que yo tengo para introducir el ID y el nombre de la población.
  22. //$sql = "INSERT INTO tabla (Provincia, Poblacion) VALUES ('$provincia','$poblacion')";
  23.  
  24. //Lo siguiente es lo que tu me has enviado
  25. $id = $provincia;
  26. $sql = 'insert into tabla (Provincia) values ((select * from personas where id = '.$provincia.'))';
  27. ?>
  28. </body>
  29. </html>
En línea

Rebélate
the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Consulta para insertar en vez de ID su nombre asociado
« Respuesta #3 en: 18 Abril 2013, 14:28 pm »

La consulta que tengo que envía los datos a la base de datos es:
Código
  1. INSERT INTO tabla (Provincia, Poblacion) VALUES ('$provincia','$poblacion')
Pero $provincia no es el nombre de la provincia, si no su id.
La composición de las tablas es:
lista_provincias: (id_prov, nom_prov)
lista_poblaciones(id_prov, nom_pobl)
Y quiero insertar los datos en la tabla "tabla" campos Provincia y Poblacion.
En línea

Rebélate
WHK
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.561


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Consulta para insertar en vez de ID su nombre asociado
« Respuesta #4 en: 18 Abril 2013, 14:49 pm »

Código
  1. <?php
  2. $c = mysql_connect("localhost", "root", "");
  3. mysql_select_db("clientes", $c);
  4.  
  5. //$provincia se obtiene de un select, cuyo valor es el id_provincia
  6. $provincia = (int)$_POST['lst1'];
  7. $poblacion = (int)$_POST['lst2'];
  8.  
  9. //La siguiente línea es lo que yo tengo para introducir el ID y el nombre de la población.
  10. //$sql = "INSERT INTO tabla (Provincia, Poblacion) VALUES ('$provincia','$poblacion')";
  11.  
  12. //Lo siguiente es lo que tu me has enviado
  13. $id = $provincia;
  14. $sql = '
  15. insert into tabla
  16. (
  17. Provincia,
  18. Poblacion
  19. ) values (
  20. (select id_prov from lista_provincias where id = '.(int)$provincia.' limit 1),
  21. (select id_prov from lista_poblaciones where id = '.(int)$poblacion.' limit 1)
  22. )
  23. ';
  24. ?>
  25. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  26. <html xmlns="http://www.w3.org/1999/xhtml">
  27. <head>
  28. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  29. </head>
  30.    <body>
  31. La provincia seleccionada es <?php echo (int)$provincia; ?><br />
  32. La población seleccionada es <?php echo (int)$poblacion; ?><br />
  33. </body>
  34. </html>
  35.  

Intenta ordenar tu código y separa el controlador de la vista para que cuando necesites modificar algo sepas donde está cada cosa, o sea, poner el código php en un lado y el html en otro.

Cuando escribas <br> estás usando html4, pero cuando usas xhtml como está puesto en la cabecera de tu sitio web debes utilizar <br />.

Recuerda utilizar cast, o sea establecer el tipo de variable, si $provincia es numérico entonces utiliza (int), si es un string entonces usa (string), si es un array entonces usa (array) y así para prevenir ataques de tipo y que te inyecten código como por ejemplo una inyección sql o un xss.

Saludos.
En línea

- Telegram: @WHK102 - Website: https://yhojann.cl/
the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Consulta para insertar en vez de ID su nombre asociado
« Respuesta #5 en: 18 Abril 2013, 16:56 pm »

Gracias por las aclaraciones, pero sigo teniendo el problema de que $provincia lleva el valor del id, y $poblacion del nombre de la poblacion.
Quiero una consulta que cuando guarde el id de $provincia lo asocie al nombre de la provincia que se encuentra en la misma tabla. ID - NOM_PROV
En línea

Rebélate
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Consulta; Necesito armar una consulta para saber si una fecha ha caido dentro...
Bases de Datos
astinx 6 4,609 Último mensaje 23 Diciembre 2011, 20:34 pm
por astinx
[?] Metodo de Potencias para calculo de valor caractetistico y vector asociado
Scripting
.:: KsV ::. 0 875 Último mensaje 26 Enero 2016, 21:40 pm
por .:: KsV ::.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines