Foros del Web » Programando para Internet » PHP »

no muestra el ultimo registro insertado previamente con insert

Estas en el tema de no muestra el ultimo registro insertado previamente con insert en el foro de PHP en Foros del Web. tengo problemas para mostrar el ultimo registro ingresado en un listbox este es el codigo del listbox: $sel_ss = "SELECT * FROM pais ORDER BY ...
  #1 (permalink)  
Antiguo 13/10/2011, 07:40
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
no muestra el ultimo registro insertado previamente con insert

tengo problemas para mostrar el ultimo registro ingresado
en un listbox este es el codigo del listbox:

$sel_ss = "SELECT * FROM pais ORDER BY id_pais ASC";
//ORDER BY id_pais desc limit 1";
$res_ss = mysql_query($sel_ss, $link);
while($db_ss = mysql_fetch_array($res_ss)){
if($db_ss["nom_pais"]!="Teleduc"){
echo '<option value="'.$db_ss["id_pais"].'">'.$db_ss["nom_pais"].'</option>';
}
}

ayuda.porf.
  #2 (permalink)  
Antiguo 13/10/2011, 08:27
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: no muestra el ultimo registro insertado previamente con insert

mcalla, bienvenido a FDW.

Bueno, viendo solo ese codigo es dificil poder ayudarte, pero podrias intentar ejecutar la consulta en PhpMyAdmin para ver si te trae todos los paises, despues ya veremos que mas se puede hacer.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 13/10/2011, 08:33
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 56
Respuesta: no muestra el ultimo registro insertado previamente con insert

Seria bueno q pruebes en el phpadmin como dice triby.

Edito: Porque tienes en // "ORDER BY id_pais desc limit 1" si esa consulta te muestra el ultimo registro en forma descendente, no es eso lo que quieres'.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.

Última edición por CesarHC; 13/10/2011 a las 08:43
  #4 (permalink)  
Antiguo 13/10/2011, 08:55
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: no muestra el ultimo registro insertado previamente con insert

SELECT * FROM pais ORDER BY id_pais ASC

desde PhpMyAdmin la consulta me devuelve todos los registros .. estaba probando con limit 1 y me devuelve solamente el ultimo ..el problema es que al insertar un registro nuevo desde otro form tengo que hacer f5 para que recien pueda seleccionar en el listbox el registro que inserte antes ..

este es el codigo del insert: (inserta bien en la tabla- shadowbox es un pop-up)
<?php
include("include/conn.inc.php");
$nombre=$_POST["nombrepais"];
$sql="insert into pais (nom_pais)";
$sql.="values ('$nombre')";
$result=mysql_query($sql,$link);
echo"<script type=\"text/javascript\">alert('el nuevo País fue ingresado'); window.parent.Shadowbox.close();</script>";
?>
  #5 (permalink)  
Antiguo 13/10/2011, 09:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: no muestra el ultimo registro insertado previamente con insert

Cita:
Iniciado por mcalla
al insertar un registro nuevo desde otro form tengo que hacer f5 para que recien pueda seleccionar en el listbox el registro que inserte antes
Ahhh, bueno!!!!

Ese es el comportamiento normal del navegador y, sin ver todo el codigo fuente, va a ser mas dificil sugerirte una forma de sacarle la vuelta a "ese pequeño detalle".
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 13/10/2011, 10:18
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: no muestra el ultimo registro insertado previamente con insert

todo el codigo esta lineas mas arriba el resto no tiene nada de sorprendente solo la conexion session_start() [para conservar los datos]

este es el codigo html del listbox:
<td width="50%" align="right" nowrap="nowrap">Misi&oacute;n Diplom&aacute;tica (Señalar Pa&iacute;s) <span class="campo_obligatorio">*</span></td>
<td nowrap="nowrap">
<select name="pais" id="pais">
<option>- Seleccione - </option>


porfavor alguna ayuda me urge terminarlo
  #7 (permalink)  
Antiguo 13/10/2011, 10:43
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
problemas con el listbox

el listbox no muestra el ultimo registro ingresado en la tabla para eso tengo que hacer F5 o actualizar y no es correcto .como hago para corregir esto alguna linea de codigo especial ..
gracias de antemano
  #8 (permalink)  
Antiguo 13/10/2011, 10:50
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: problemas con el listbox

Si no sabes vos, nosotros menos... Por favor coloca el código. Gracias
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 13/10/2011, 10:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas con el listbox

Temas unidos, por favor NO dupliques temas.
  #10 (permalink)  
Antiguo 13/10/2011, 11:53
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: no muestra el ultimo registro insertado previamente con insert

index.php
<?php
include("include/conn.inc.php");
session_start();
?>
...
<td width="50%" align="right" nowrap="nowrap">Misi&oacute;n Diplom&aacute;tica (Señalar Pa&iacute;s) <span class="campo_obligatorio">*</span></td>
<td nowrap="nowrap">
<select name="pais" id="pais">
<option>- Seleccione - </option>
$sel_ss = "SELECT * FROM pais ORDER BY id_pais ASC";
$res_ss = mysql_query($sel_ss, $link);
while($db_ss = mysql_fetch_array($res_ss)){
if($db_ss["nom_pais"]!="Teleduc"){
echo '<option value="'.$db_ss["id_pais"].'">'.$db_ss["nom_pais"].'</option>';
}
}
</select>
&nbsp &nbsp <a href="see-data.php" rel="shadowbox;height=200;width=400">Nuevo País</a>
...

see-data.php

<?php
$_SESSION['form_a'] = array(
'r' => $_POST['campo1'],
'd' => $_POST['campov'],
'nom' => $_POST['campo2'],
'ap' => $_POST['campo3'],
'am' => $_POST['campo4'],
'ci' => $_POST['campo5'],
'p' => $_POST['campo6'],
'ca' => $_POST['campo7],
);
header ("Location: insertarpais.php");

?>


insertarpais.php


<script language="JavaScript">
function actualizarPadre()
{
// form1 corresponde al nombre del formulario de la pagina contenedora o principal
// campo1 es el nombre del campo donde se ingresara el valor en la pagina principal
window.parent.Shadowbox.close();
}
</script>
</head>
<body>
<center>


insertapais.php

<?php
include("include/conn.inc.php");
$nombre=$_POST["nombrecampo"];
$sql="insert into taba (nombrecampo)";
$sql.="values ('$nombre')";
$result=mysql_query($sql,$link);
echo"<script type=\"text/javascript\">alert('el nuevo País fue ingresado'); window.parent.Shadowbox.close();</script>";
?>
<form name="f1" method="post" action="insertapais.php" onsubmit="return validar()">
<br>
<br>
<p>
<strong>Digitar el País</strong>
<input name="nombrepais" type ="text" onKeyPress="return sololetras(event)" >
</p>
<p>
<input type="submit" value="Agregar País">
</p>
<input name="boton_volver" type="button" value="Cancelar >>" id="boton_volver" onclick="javascript:actualizarPadre()" />

</form>
  #11 (permalink)  
Antiguo 13/10/2011, 12:37
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: no muestra el ultimo registro insertado previamente con insert

El problema es que insertas el pais despues de mostrar la lista de paises, esquematizando un poco lo he haces es esto:

Muestras lista de paises (A,B,C)
Insertas pais (D)

por lo tanto solo se veran los 3 primero (A,B y C) y nunca se verá el ultimo.

----------------------------

Algunos consejos:

<?php
include("include/conn.inc.php");
session_start(); //para evitar problemas escribe esta linea siempre al principio.
?>
----------------------------
<?php
// Debes iniciar la sesion para escribir sesiones
$_SESSION['form_a'] = array(
'r' => $_POST['campo1'],
'd' => $_POST['campov'],
'nom' => $_POST['campo2'],
'ap' => $_POST['campo3'],
'am' => $_POST['campo4'],
'ci' => $_POST['campo5'],
'p' => $_POST['campo6'],
'ca' => $_POST['campo7],
);
header ("Location: insertarpais.php");
//Al cambiar la cabecera te vas a otra página, por lo tanto el guardado anterior no es necesario aqui, puedes poner todo lo que esta en este archivo en insertarpais.php y enviar el formulario directamente allá y evitar este paso :)
?>
---------------------------
<script language="JavaScript">
function actualizarPadre()
{
// form1 corresponde al nombre del formulario de la pagina contenedora o principal
// campo1 es el nombre del campo donde se ingresara el valor en la pagina principal
window.parent.Shadowbox.close(); // esto tambien puedes evitarlo, te recomiendo usar un iframe oculto en vez de una ventana, aunque en tu caso te recomiendo que no uses ninguno de los 2, si quieres que los datos se actualicen al mismo momento de guardar hazlo todo con php
}
</script>
</head>
<body>
<center>
-------------------------------
En cuanto a insertapais.php, no se como se llega ahi, pero te digo que puedes hacer todo en una sola página, algo asi:
--------------------------------
Código PHP:
Ver original
  1. if($_GET['agregar']){
  2. $r = $_POST['campo1'];
  3. $d = $_POST['campov'];
  4. $nom = $_POST['campo2'];
  5. $ap = $_POST['campo3'];
  6. $am = $_POST['campo4'];
  7. $ci = $_POST['campo5'];
  8. $p = $_POST['campo6'];
  9. $ca = $_POST['campo7];
  10. mysql_query("insert into asdfasdf values($r,$d,$nom,$ap,$am,$ci,$p,$ca)",$link);
  11. }
  12. <select name="pais" id="pais">
  13. //code...
  14. </select>
  15. &nbsp &nbsp <a href=".?agregar=1" rel="shadowbox;height=200;width=400">Nuevo País</a>

y mejor no sigo o me van a retar por ayudar mucho XD
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #12 (permalink)  
Antiguo 13/10/2011, 20:19
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: no muestra el ultimo registro insertado previamente con insert

insertapais.php

<?php
include("include/conn.inc.php");
$nombre=$_POST["nombrepais"];
$sql="insert into pais (nom_pais)";
$sql.="values ('$nombre')";
$result=mysql_query($sql,$link);
echo"<script type=\"text/javascript\">alert('el nuevo País fue ingresado'); window.parent.Shadowbox.close();</script>";
?>
  #13 (permalink)  
Antiguo 14/10/2011, 13:21
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: no muestra el ultimo registro insertado previamente con insert

ayuda porf donde mas puede estar el detalle
  #14 (permalink)  
Antiguo 14/10/2011, 13:30
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: no muestra el ultimo registro insertado previamente con insert

Bueno, el problema esta en que estas creando el nuevo pais en otra pantalla, por lo que forzosamente debes recargar la pagina o el listado de paises (con AJAX).

Una posible solucion sin modificar tanto, seria que en vez de window.parent.Shadowbox.close(); intentes con window.parent.reload();
__________________
- León, Guanajuato
- GV-Foto
  #15 (permalink)  
Antiguo 16/10/2011, 06:29
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: no muestra el ultimo registro insertado previamente con insert

este es el codigo que llena el combobox con los paices:

<select name="pais" id="pais">
<option value="-1">- Seleccione - </option>

<?php
$sel_ss = "SELECT * FROM TABLA";
$res_ss = mysql_query($sel_ss, $link);
while($db_ss = mysql_fetch_array($res_ss)){
if($db_ss["nombre"]!="Teleduc"){
echo '<option value="'.$db_ss["id"].'">'.$db_ss["nombre"].'</option>';
}
}
?>
</select>


porf. algun comentario .
  #16 (permalink)  
Antiguo 16/10/2011, 08:42
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
el combobox no muestra el ultimo registro insertado, sino cuando actualizo

este es le codigo para llenar el combo pero cuando ingreso un nuevo registro a la tabla, tengo que hacer F5 al formulario para que aparesca el ultimo registro inserte.


<select name="pais" id="pais">
<option value="-1">- Seleccione - </option>r
<?php
$sel_ss = "SELECT * FROM pais";
$res_ss = mysql_query($sel_ss, $link);
while($db_ss = mysql_fetch_array($res_ss)){
if($db_ss["nom_pais"]!="Teleduc"){
echo '<option value="'.$db_ss["id_pais"].'">'.$db_ss["nom_pais"].'</option>';
}
}
?>
</select>


porf. ayuda para remediar esto
  #17 (permalink)  
Antiguo 16/10/2011, 08:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 12 años, 11 meses
Puntos: 32
Respuesta: el combobox no muestra el ultimo registro insertado, sino cuando actualizo

claro y nunca lo mostrara dado que php es un lenguaje de servidor, para que se actualice ese pedazo y se muestren siempre los registros usa javascript que es un lenguaje de cliente,

por medio de ajax + php
  #18 (permalink)  
Antiguo 16/10/2011, 10:49
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: el combobox no muestra el ultimo registro insertado, sino cuando actualizo

como puedo llamar a una funcion javascript desde php
<select name="pais" id="pais" ...>
<option value="-1">- Seleccione - </option>

</select>

para que llene.
  #19 (permalink)  
Antiguo 16/10/2011, 10:51
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: el combobox no muestra el ultimo registro insertado, sino cuando actualizo

Investiga sobre Ajax, luego cuando lo sepas con ese conocimiento intenta hacerlo y si tienes problemas vuelve a preguntar. Suerte!
  #20 (permalink)  
Antiguo 16/10/2011, 11:46
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: el combobox no muestra el ultimo registro insertado, sino cuando actualizo

este es
el codigo que permite llenar el combo.

<select name="pais" id="pais">
$sel_ss = "SELECT * FROM pais";
$res_ss = mysql_query($sel_ss, $link);
while($db_ss = mysql_fetch_array($res_ss)){
if($db_ss["nom_pais"]!="Teleduc"){
echo '<option value="'.$db_ss["id_pais"].'">'.$db_ss["nom_pais"].'</option>';
}
}
</select>

ahora nose como este codigo convertirlo en una funcion javascript y luego como hacer la llamada desde el <select name="pais" id="pais" ... >
  #21 (permalink)  
Antiguo 16/10/2011, 11:53
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: el combobox no muestra el ultimo registro insertado, sino cuando actualizo

No se "convierte" en una función JavaScript como dices, sino que se obtiene mediante Ajax a una función JavaScript. Haz como te digo, aprende Ajax, hay cantidad de manuales en la Red, una vez que entienda como funciona podrás hacerlo. No quieras que alguien te de un código ya hecho sino que aprendas a hacerlo tú mismo.
  #22 (permalink)  
Antiguo 16/10/2011, 12:14
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: el combobox no muestra el ultimo registro insertado, sino cuando actualizo

alguien que ya halla pasado por esto porf. que me pueda ayudar
  #23 (permalink)  
Antiguo 16/10/2011, 12:36
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: el combobox no muestra el ultimo registro insertado, sino cuando actualizo

Yo he pasado por eso muchas veces, pero veo que al parecer no te interesa aprender. Que mal.
  #24 (permalink)  
Antiguo 16/10/2011, 12:50
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: el combobox no muestra el ultimo registro insertado, sino cuando actualizo

es algo urgente porf. alguna alma caritativa que tenga un ejemplo para estudiarlo y adaptarlo al mio
  #25 (permalink)  
Antiguo 16/10/2011, 13:07
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 12 años, 11 meses
Puntos: 32
Respuesta: el combobox no muestra el ultimo registro insertado, sino cuando actualizo

aki te dejo ejemplos de ajax. adaptalo a lo que necesitas hay uno del select
http://www.formatoweb.com.ar/ajax/
  #26 (permalink)  
Antiguo 16/10/2011, 13:14
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: el combobox no muestra el ultimo registro insertado, sino cuando actualizo

gracias dukeblass tu si!
  #27 (permalink)  
Antiguo 16/10/2011, 16:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: no muestra el ultimo registro insertado previamente con insert

Temas unidos por favor NO dupliques temas.

Etiquetas: combobox, insert, insertado, listbox, muestra, mysql, registro, tabla, ultimo
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 19:18.