Foros del Web » Programando para Internet » PHP »

ordenar variables en código!

Estas en el tema de ordenar variables en código! en el foro de PHP en Foros del Web. Amigos del foro, llevo un buen rato peleando en saber como poner la consulta del último Id de mi base de datos en la variable ...
  #1 (permalink)  
Antiguo 22/10/2006, 19:36
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
ordenar variables en código!

Amigos del foro, llevo un buen rato peleando en saber como poner
la consulta del último Id de mi base de datos en la variable
$id = ???; el código es el siguiente:

Código PHP:
(...)

     break;
    }
    
mysql_select_db("$nombreBaseDatos");
   }
 if(!isset(
$id))
   
$id = ???; // <========= acá va: (???) el valor del último id consultado en la base de datos
$conn mysql_connect("$hostbd","$loginBaseDatos","$passwordBaseDatos");
 
mysql_select_db("$nombreBaseDatos");

(...) 
con está consulta obtengo el último id:

Código PHP:
<?
//***
$ultimo mysql_query("SELECT id FROM $archivos ORDER BY id DESC LIMIT 1"); 
$end mysql_fetch_array($ultimo);

?>

<?echo $end[id];?>
espero su ayuda, muchas gracias!

Última edición por adex; 22/10/2006 a las 19:58
  #2 (permalink)  
Antiguo 23/10/2006, 03:00
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
No entiendo cual es el problema. Si necesitas saber el último id de la tabla $archivos y ahí muestras un código para hacerlo, entonces qué necesitas?
  #3 (permalink)  
Antiguo 23/10/2006, 05:53
 
Fecha de Ingreso: octubre-2006
Ubicación: Málaga
Mensajes: 33
Antigüedad: 17 años, 6 meses
Puntos: 0
con esto debería funcionar:
Código PHP:
<? 
//*** 
$ultimo mysql_query("SELECT max(id) as maximo FROM $archivos");  
$end mysql_fetch_array($ultimo);

$nuevo_id $end['maximo']+1;

?>
con este código generas un nuevo id para insertar un nuevo registro, en caso de solo querer el último usa $end['maximo']

Última edición por omnibius; 23/10/2006 a las 05:54 Razón: completar
  #4 (permalink)  
Antiguo 23/10/2006, 07:35
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
omnibius gracias por tu aporte, era lo que necesitaba en otro módulo de mi sistema y no sabía como hacerlo...

bueno, en el tema de este foro creo que no me expliqué bién, yo traté hacer
de esta manera pero me tira error, sé que está mal por eso quería que me
echaran una manita:

Código PHP:
(...) 

     break; 
    } 
    
mysql_select_db("$nombreBaseDatos"); 
   }

// ============================================================
// ???
$ultimo mysql_query("SELECT id FROM $archivos ORDER BY id DESC LIMIT 1");  
$end mysql_fetch_array($ultimo);
// ============================================================
   
 
if(!isset($id)) 
   
$id $end[id]; // <========= acá va: (???) el valor del último id consultado en la base de datos 
$conn mysql_connect("$hostbd","$loginBaseDatos","$passwordBaseDatos"); 
 
mysql_select_db("$nombreBaseDatos"); 

(...) 
  #5 (permalink)  
Antiguo 23/10/2006, 09:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y ese campo "ID" no es autonumérco acaso? .. Como lo defines en tu BBDD? .. Si ese "contador" ya lo hace Msyql por defecto (y bien controlado por tí) ..

OJO con consutlas SQL tipo "MAX(id)" .. puedes tener problemas .. imagina el caso que por un lado consultas y obtiene ese "ID" viendo cual es el "máximo" . .por otro lado otro usuario ejecuta el proceso y genera un nuevo "ID" .. ¿que valor tomarás para sumarle una unidad? .. Tema peligroso.

Por lo demás . .no es necesario hacer un "xxx_fetch_array()" si sólo obtenemos un resultado .. se puede usar mysql_result() directa:

Código PHP:
<?  
//***  
$resultado mysql_query("SELECT max(id) as maximo FROM tabla");   
$ultimo_id mysql_result($resultado,0,"maximo"); 

$nuevo_id $ultimo_id+1

?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 23/10/2006, 09:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por adex Ver Mensaje
omnibius gracias por tu aporte, era lo que necesitaba en otro módulo de mi sistema y no sabía como hacerlo...

bueno, en el tema de este foro creo que no me expliqué bién, yo traté hacer
de esta manera pero me tira error, sé que está mal por eso quería que me
echaran una manita:

Código PHP:
(...) 

     break; 
    } 
    
mysql_select_db("$nombreBaseDatos"); 
   }

// ============================================================
// ???
$ultimo mysql_query("SELECT id FROM $archivos ORDER BY id DESC LIMIT 1");  
$end mysql_fetch_array($ultimo);
// ============================================================
   
 
if(!isset($id)) 
   
$id $end[id]; // <========= acá va: (???) el valor del último id consultado en la base de datos 
$conn mysql_connect("$hostbd","$loginBaseDatos","$passwordBaseDatos"); 
 
mysql_select_db("$nombreBaseDatos"); 

(...) 
Como en el ejemplo anterior dejé .. usa mysql_result() y listo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 23/10/2006, 09:55
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Cluster, lo que omnibius posteó no tiene nada que ver con mi lío actual, creo que cometí el error en mezclar las cosas, no fue intencional, claro!
---------------------------------------------------
bueno, la idea es esta: tengo un sistema para modificar registros de la
base de datos, pero para eso siempre necesitaré el último ID, actualmente
lo hago manualmente con esto:

if(!isset($id))
$id = 1;


Código PHP:
(...) 

     break; 
    } 
    
mysql_select_db("$nombreBaseDatos"); 
   } 
 if(!isset(
$id)) 
   
$id = ???; // <========= acá va: (???) el valor del último id consultado en la base de datos, gran lío para mí 
$conn mysql_connect("$hostbd","$loginBaseDatos","$passwordBaseDatos"); 
 
mysql_select_db("$nombreBaseDatos"); 

(...) 
  #8 (permalink)  
Antiguo 23/10/2006, 10:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lamentablemente no nos entendemos ..

Si tu ya sabes obtener tu último ID como lo haces tu:

$ultimo = mysql_query("SELECT id FROM $archivos ORDER BY id DESC LIMIT 1");
$end = mysql_fetch_array($ultimo);

Ya te comenté que lo que debes usar es "mysql_result()" ...

Código PHP:
$ultimo mysql_query("SELECT id FROM $archivos ORDER BY id DESC LIMIT 1");   
$id_ultimo mysql_result($ultimo,0); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 23/10/2006, 10:26
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 18 años, 6 meses
Puntos: 0
No se si vaya por aqui el asunto, pero alguna vez yo tuve un problema similar, en el que necesitaba obtener el ID autonumerico del ultimo registro insertado, para poder usarlo en otra pagina, te paso lo que hacia y ojala sea la respuesta que estas buscando.

Código PHP:
  mysql_select_db($database_conex$conex); 
  
$Result1 mysql_query($insertSQL$conex) or die(mysql_error());
  
$patomysql_insert_id(); //Despues de hacer la insercion del nuevo registro guardo el ID que se genero en la variable $pato
  
  
$redireccion "confirmado.php?nuevoid=$pato"//contruyo la URL a donde sera dirigido despues de hacer la insercion del registro, con la variable $pato como parametro que pasara por la URL 
y ahora en el archivo confirmado.php uso este codigo.

Código PHP:
Hola! tu solitud quedo registrada con con el numero <?php  echo $_GET['pato']; ?> Gracias!
Espero te sirva...

Saludos!!! Cuuuuack!
__________________
De todas las cosas que queria ser... :-D acabe siendo un pato volador... :risa:
http://patovolador.wordpress.com
  #10 (permalink)  
Antiguo 23/10/2006, 10:44
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Cluster, lamento mucho no manejar muy bien las manzanas y las peras
espero dejarme enteder con esto:

para obtener el último id:

Código PHP:
$ultimo mysql_query("SELECT id FROM $archivos ORDER BY id DESC LIMIT 1");    
$id_ultimo mysql_result($ultimo,0); 
ahora, el código anterior como hago para insertarlo en el siguiente
código, y agregarle el resultado en la variable $id = ??? :

Código PHP:
(sigue ...)  

     break;  
    }  
    
mysql_select_db("$nombreBaseDatos");  
   }  
 if(!isset(
$id))  
   
$id = ???; // <========= acá va: (???) el valor del último id consultado
$conn mysql_connect("$hostbd","$loginBaseDatos","$passwordBaseDatos");  
 
mysql_select_db("$nombreBaseDatos");  

(... 
continua el código
Gracias nuevamente Cluster por tu paciencia
  #11 (permalink)  
Antiguo 23/10/2006, 10:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm Pero si ya lo tienes!!!:

Yo puse:
$id_ultimo = mysql_result($ultimo,0);

Pero dá igual si tu haces:

$id = mysql_result($ultimo,0);

donde lo necesites .. mientras que no hagas un mysql_free_result() antes o un mysql_close() que "mataría" ese resultado .. lo puedes obtener donde quieras.

Quiero que "entiendas" que la función mysql_result() obtiene un resultado directo de una consulta SQL ejecutada dada... (si eso no lo ves claro . .pregunta .. pero si no lo entiendes no entenderas ni esto ni nada al respecto).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 10/11/2006, 21:02
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
bueno, después de liarme mucho con esto, al final me quedo así
no se si está bien la lógica, pero me funciona:

Código PHP:
(sigue ...)   

     break;   
    }   
    
mysql_select_db("$nombreBaseDatos");   
// ============================================================ 
// 
$ultimo mysql_query("SELECT id FROM $archivos ORDER BY id DESC LIMIT 1");   
$end mysql_fetch_array($ultimo); 
$id $end[id]; 
// ============================================================
   
}   
 if(!isset(
$id))   
   
$id $id// <========= acá va: (???) el valor del último id consultado 
$conn mysql_connect("$hostbd","$loginBaseDatos","$passwordBaseDatos");   
 
mysql_select_db("$nombreBaseDatos");   

(... 
continua el código
:D
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:04.