Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

SELECT ID FROM TABLE WHERE NAME = 'Carlos'

Estas en el tema de SELECT ID FROM TABLE WHERE NAME = 'Carlos' en el foro de Mysql en Foros del Web. Hola.. primero muchas gracias y disculpas si ya se preguntó, pero la gente titula sus consultas como "Consulta sobre mysql" y no he entrado a ...
  #1 (permalink)  
Antiguo 05/03/2011, 09:01
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años, 7 meses
Puntos: 2
SELECT ID FROM TABLE WHERE NAME = 'Carlos'

Hola.. primero muchas gracias y disculpas si ya se preguntó, pero la gente titula sus consultas como "Consulta sobre mysql" y no he entrado a todos los threads a buscarlo :S!!!

La cuestión que tengo a resolver es que tengo una tabla con un ID primary key y auto increment, y un campo nombre. Primero hago un insert en la tabla donde coloco el nombre, y luego todas las demás veces me gustaria recuperar el ID ingresando el nombre en la clausula WHERE

SELECT ID FROM TABLE WHERE NAME = 'Carlos'

Yo esto lo estoy haciendo en PHP con MySQL pero no se en que lugar está fallando. Hay algún tipo de restricciones sobre obtener los IDs de las tablas?

Gracias a todos!!
  #2 (permalink)  
Antiguo 05/03/2011, 09:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: SELECT ID FROM TABLE WHERE NAME = 'Carlos'

Si estás usando PHP, lo más simple es que recuperes el valor del ID con la función mysql_insert_id() de PHP.
Código PHP:
$result mysql_query("INSERT INTO mytable (product) values ('kossu')");
if(
$result)
    {
    
$idNuevo mysql_insert_id();
    } 
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 05/03/2011, 09:41
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: SELECT ID FROM TABLE WHERE NAME = 'Carlos'

si quieres recuperar el id inmediatamente después de insertar el registro entonces con el código de gnzsoloyo solucionas el problema.

Ahora si es de otra manera tu consulta está mal, porque solo estas seleccionando el ID, pero estás comparando la condición con el nombre. Debes seleccionar ambos campos para crear la consulta y hacer el query:

Código MySQL:
Ver original
  1. $selecciona = "SELECT ID, NAME FROM TABLE WHERE NAME = 'Carlos'";
  2. $selecciona_query = mysql_query($selecciona);

y también puedes usar * para seleccionar todos los registros.


Código MySQL:
Ver original
  1. $selecciona = "SELECT *  FROM TABLE WHERE NAME = 'Carlos'";
  2. $selecciona_query = mysql_query($selecciona);
  #4 (permalink)  
Antiguo 06/03/2011, 08:17
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años, 7 meses
Puntos: 2
Respuesta: SELECT ID FROM TABLE WHERE NAME = 'Carlos'

Gracias a los dos por contestar.. ambas soluciones fueron utiles. En este caso queria recuperarlo varias veces despues de haberlo insertado.. y si, estaba comparando con un campo que no habia seleccionado. Anduvo cuando lo agregue a la seleccion.

Muchas gracias nuevamente!!
  #5 (permalink)  
Antiguo 07/03/2011, 13:58
 
Fecha de Ingreso: febrero-2011
Mensajes: 43
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: SELECT ID FROM TABLE WHERE NAME = 'Carlos'

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Si estás usando PHP, lo más simple es que recuperes el valor del ID con la función [URL="http://ar.php.net/manual/es/function.mysql-insert-id.php"]mysql_insert_id() [/URL]de PHP.
Código PHP:
$result mysql_query("INSERT INTO mytable (product) values ('kossu')");
if(
$result)
    {
    
$idNuevo mysql_insert_id();
    } 

Etiquetas: select, table
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 22:28.