Foros del Web » Programando para Internet » PHP »

Averiguar ultimo id

Estas en el tema de Averiguar ultimo id en el foro de PHP en Foros del Web. Tengo una tabla (criaderos) donde cargo los datos de los criaderos (nombre, direccion, etc) y otra tabla (razas) donde están los nombres de las distintas ...
  #1 (permalink)  
Antiguo 27/05/2005, 21:18
Avatar de jpvilar  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 12 años, 10 meses
Puntos: 1
Averiguar ultimo id

Tengo una tabla (criaderos) donde cargo los datos de los criaderos (nombre,
direccion, etc) y otra tabla (razas) donde están los nombres de las
distintas razas ...
El tema es así, cada criadero puede tener N razas, entonces necesito crear
(ya la tengo) una tercera tabla donde cargo el id del criadero (tomado de una tabla) y el id de los distintos nombres de las razas (tomado de otra) ...
¿como averiguo el id del criadero que se acaba de crear en la tabla criaderos para insertarlo en cada fila de la tercera tabla con los id de las razas correspondientes a ESE criadero?
Gracias
__________________
JuanP
QUIEN NO SE EQUIVOCA NO APRENDE ...
QUIEN NO APRENDE SE EQUIVOCA ... PERO NO APRENDE
  #2 (permalink)  
Antiguo 27/05/2005, 21:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Usa:

mysql_insert_id()
http://www.php.net/manual/es/functio...-insert-id.php
(o equivalente en SQL "puro". Tienes comentarios en dicha documentación que explican el otro método "SQL").

inmediatamente despues de tu INSERT que supongo que los irás haciendo bajo el bucle que lees los "IDs" recibidos de tu selección múltiple.

Si tienes algúna "paranodia" (sana por otro lado) sobre si simultáneamente vas a tener vários INSERT's simultáneos en el mismo "thread" (proceso) .. usa "transacciones" de SQL (no indicas que BD usas ..pero hasta Mysql las soporta a su manera)..

Un saludo,
  #3 (permalink)  
Antiguo 27/05/2005, 22:04
Avatar de jpvilar  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 12 años, 10 meses
Puntos: 1
Gracias Cluster, no es paranoia, es simplemente orden ... se que es practicamente imposible la simultaneidad de inserts pero ... si se puede hacer bien, ¿para que alambrarlo no?
Saludos
__________________
JuanP
QUIEN NO SE EQUIVOCA NO APRENDE ...
QUIEN NO APRENDE SE EQUIVOCA ... PERO NO APRENDE
  #4 (permalink)  
Antiguo 27/05/2005, 22:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por eso decía "sana paranoia" .. Revisa el tema de las transacciones de la BD que uses (Mysql?) por que con eso y la versión SQL de obtención del ID último generado resolveras el tema de forma segura.

Un saludo,
  #5 (permalink)  
Antiguo 28/05/2005, 09:08
Avatar de Gabriel0702  
Fecha de Ingreso: febrero-2005
Mensajes: 155
Antigüedad: 12 años, 9 meses
Puntos: 0
JpVilar: ¿los datos que quieres insertar para un cliente lo tienes o lo quieres hacer en el momento en el que se da de alta?, si es así, dímelo.
  #6 (permalink)  
Antiguo 28/05/2005, 11:42
Avatar de jpvilar  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 12 años, 10 meses
Puntos: 1
Exacto, los deatos q tengo que insertar en la tercera tabla es el id del cliente q se acaba de crear.
Saludos
__________________
JuanP
QUIEN NO SE EQUIVOCA NO APRENDE ...
QUIEN NO APRENDE SE EQUIVOCA ... PERO NO APRENDE
  #7 (permalink)  
Antiguo 28/05/2005, 12:08
Avatar de jpvilar  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 12 años, 10 meses
Puntos: 1
Resuelto

Gracias a Cluster y Gabriel0702 por su ayuda, resolví las dos consultas y les muestro como ... acepto sugerencias

ENVIO DE VARIABLES
// coloco esta variable ya que es la única que me complicó ... el resto son <input text>
$ra = mysql_query("select * from razas order by raza_nombre");
echo "<select name=\"raza[]\" size=5 multiple>";
while ($raza = mysql_fetch_array($ra)) {
echo "<option value=\"$raza[raza_id]\">$raza[raza_nombre]</option>";
}
echo "</select>";


RECEPCION DE VARIABLES
// previo a esto van todas las validaciones
mysql_query("insert into criaderos set criad_nombre='$nombre',criad_contacto='$contacto', criad_email='$email',criad_direccion='$calle',cria d_ciudad='$ciudad',criad_codigo='$codigo',criad_pr ovincia='$provincia',criad_pais='$pais',criad_tele fono='$telefono',criad_web='$web',criad_detalles=' $detalles',criad_activo='$activo',criad_referido=' $referido'");
$ult_criad = mysql_insert_id();
for($i = 0; $i < sizeof($_POST["raza"]); $i++) {
$sac = $_POST["raza"][$i];
mysql_query("insert into razas_criad set rc_raza='$sac', rc_criad='$ult_criad'");
}


Gracias de nuevo
Saludos
__________________
JuanP
QUIEN NO SE EQUIVOCA NO APRENDE ...
QUIEN NO APRENDE SE EQUIVOCA ... PERO NO APRENDE
  #8 (permalink)  
Antiguo 28/05/2005, 12:20
Avatar de Gabriel0702  
Fecha de Ingreso: febrero-2005
Mensajes: 155
Antigüedad: 12 años, 9 meses
Puntos: 0
Felicidades jpvilar
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 02:19.