Foros del Web » Programando para Internet » PHP »

hacer insert si esta bien envie a url siguiente

Estas en el tema de hacer insert si esta bien envie a url siguiente en el foro de PHP en Foros del Web. hola amigos tengo un insert sencillo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original mysql_query ( "insert into xxx (id,nombre,fecha,fecha_exp,categoria) values (' $id ',' $nombre ',' $fecha ...
  #1 (permalink)  
Antiguo 13/05/2011, 18:28
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
hacer insert si esta bien envie a url siguiente

hola amigos tengo un insert sencillo
Código PHP:
Ver original
  1. mysql_query("insert into xxx (id,nombre,fecha,fecha_exp,categoria) values ('$id','$nombre','$fecha','$fecha_exp','$categoria')");

como hago para que cuando se haga el insert me envia a la pagina ver.php con el parametro insertado?

ver.php?id=1&nombre=jose

gracias
  #2 (permalink)  
Antiguo 13/05/2011, 18:40
Avatar de dcreate  
Fecha de Ingreso: octubre-2009
Ubicación: Veracruz
Mensajes: 536
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: hacer insert si esta bien envie a url siguiente

que te parece esto:

Código PHP:
$a=mysql_query("insert into xxx (id,nombre,fecha,fecha_exp,categoria) values ('$id','$nombre','$fecha','$fecha_exp','$categoria')") or die (mysql_error());
if(
$a){
header("location:ver.php?id=".$id."&nombre=".$nombre);
exit();

__________________
Somos lo que pensamos, como pensamos vivimos.
  #3 (permalink)  
Antiguo 13/05/2011, 18:49
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: hacer insert si esta bien envie a url siguiente

esta bueno pero me he equivocado ps yo no le hago el insert al id ps este me lo genera la bd con el autoincrement :( entonces podria mirar cual seria su id que tendria que hacer una consulta para mirar cual es el ultimo id y sumarle +1?? o como hago
  #4 (permalink)  
Antiguo 14/05/2011, 01:28
 
Fecha de Ingreso: noviembre-2010
Ubicación: El Salvador
Mensajes: 44
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: hacer insert si esta bien envie a url siguiente

Para saber cual fue el ultimo id registrado lo podes hacer con la funcion mysql_insert_id().
http://www.php.net/manual/es/functio...-insert-id.php

y para dirigir a otra dirección también lo podes hacer mediante javascript porque el problema de header es que sin tenes alguna impresión ya sea html o php te da error.
<script type="text/javascript">javascript:window.location="ver.php?id =".$id."&nombre=".$nombre"</script>
__________________
http://blog.kiuvox.com
  #5 (permalink)  
Antiguo 14/05/2011, 01:36
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: hacer insert si esta bien envie a url siguiente

Usando el metodo de dcreate solamente hacemos una busqueda puse varios parametros en el where por si las dudas tambien pudieramos usar
SELECT MAX(id) FROM xxx
pero por si las dudas preferi hacerlo asi jeje

Código PHP:
<?php
$a
=mysql_query("insert into xxx (id,nombre,fecha,fecha_exp,categoria) values ('$id','$nombre','$fecha','$fecha_exp','$categoria')") or die (mysql_error());
if(
$a){
    
$q mysql_fetch_object(mysql_query("SELECT * FROM xxx WHERE nombre='".$nombre."' and fecha='".$fecha."' and categoria='".$categoria."' Order by id DESC"));
    
$id $q->id;
    
header("location:ver.php?id=".$id."&nombre=".$nombre);
    exit();
}  
?>
  #6 (permalink)  
Antiguo 14/05/2011, 03:42
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: hacer insert si esta bien envie a url siguiente

Lo mas sencillo y util es mysql_insert_id...
Código PHP:
Ver original
  1. $sql = 'INSERT INTO mitabla (micampo1,micampo2,etc) VALUES ("valor1","valor2","etc")';
  2. mysql_query($sql,$conexion);
  3.  
  4. //obtenemos el ID del ultimo registro
  5. $id = mysql_insert_id($conexion);

Obviamente para que funcione mitabla debe tener un campo autoincrementable y primaria
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 14/05/2011, 08:18
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: hacer insert si esta bien envie a url siguiente

Nemutagk esta bien sencillo de tu forma que recomiendas inserta bieny saca el ultimo id pero como le hago para q cuando ya se haga esto se valla a ver.php

he mirado de los forma y nada no se como seria
el
<script type="text/javascript">javascript:window.location="ver.php?id =".$id."&nombre=".$nombre"</script>

header("location:ver.php?id=".$id."&nombre=".$nomb re);

cual seria el adecuado y como se utiliza



a gracias s00rk y hugotuxsv por la ayuda
  #8 (permalink)  
Antiguo 14/05/2011, 09:03
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: hacer insert si esta bien envie a url siguiente

Al final de cuentas es casi lo mismo, ambas formas realizan la redirección, aunque solo ponte a pensar 1 cosa, si tu usuario tiene desactivado javascript la primera forma no funcionara, y se quedará en la misma página, ahora lo que yo recomiendo siempre es hacerla via PHP ya que es la forma mas idonea, no importa si tiene o no javascript siempre se realizará la redirección, como usarla, pues tal cual como la tienes, no que que problema tengas
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #9 (permalink)  
Antiguo 14/05/2011, 09:20
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: hacer insert si esta bien envie a url siguiente

gracias
aaa entonces con php
oye y como seria la sintaxis correcta para que al hacer el insert este si es correcto haga

Código PHP:
Ver original
  1. $sql = 'INSERT INTO mitabla (micampo1,micampo2,etc) VALUES ("valor1","valor2","etc")';
  2. mysql_query($sql,$conexion);
  3. &#160;
  4. //obtenemos el ID del ultimo registro
  5. $id = mysql_insert_id($conexion);

despues pongo el codigo ?

header("location:ver.php?id=".$id."&nombre=".$nomb re)

a la pagina en donde muestra el nuevo articulo?
ps lo ponga si como esta y no da :(
  #10 (permalink)  
Antiguo 14/05/2011, 09:27
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: hacer insert si esta bien envie a url siguiente

Veo que tienes dudas muy basicas, lo mejor seria que leyera algún manual de programación si es que no lo has hecho, ir a ciegas solo alentará y frustrara tus intenciones de aprender, como saber si se realizo bien una consulta SQL es muy sencillo...
Código PHP:
Ver original
  1. mysql_query($sql,$conexion) or die(mysql_error());

Si la sentencia sql esta mal se invocara un die e imprimira el error, si la sentencia se ejecuta correctamente el programa seguira su curso norlmal

Ahora, si quieres usar algo mejor solo ejecuta el mysql_query dentro de un if
Código PHP:
Ver original
  1. if (mysql_query($sql,$conexion)) {
  2. header('locatio: miurl.php');
  3. }else {
  4. echo 'error en la consulta: '.mysql_error();
  5. }

Nota: se me olvidaba, mysql_query SOLO retorna true cuando se hace una sentencia del tipo INSERT, UPDATE, DELETE, DROP, etc, para otras sentencias el retorno será de acuerdo a la sentencia
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 14/05/2011 a las 09:32
  #11 (permalink)  
Antiguo 14/05/2011, 09:41
 
Fecha de Ingreso: noviembre-2010
Ubicación: El Salvador
Mensajes: 44
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: hacer insert si esta bien envie a url siguiente

Solo modificando un poco lo que ya te enseñaron te puede quedar así:
Código PHP:
$sql 'INSERT INTO mitabla (micampo1,micampo2,etc) VALUES ("valor1","valor2","etc")';
if(
mysql_query($sql,$conexion)){
//obtenemos el ID del ultimo registro y hacer header
$id mysql_insert_id();
header("location:ver.php?id=".$id."&nombre=".$nomb re)
}else{
 echo 
"algún tu mensaje de error";

Ojo y acuerdate que si atrás de todo esto tienes cualquier impresión html o php te va a dar error el header. Tiene que encontrar una buena posición al principio de tu archivo para poner esto.
__________________
http://blog.kiuvox.com
  #12 (permalink)  
Antiguo 14/05/2011, 10:28
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: hacer insert si esta bien envie a url siguiente

eh puesto lo q me dise hugotuxsv y fijesen q me hace el echo de error porq?

codigo comple publicar.php
Código PHP:
Ver original
  1. <?
  2. //Conexion con la base
  3. $conexion= mysql_connect("localhost","xxx","xxxx");
  4.  
  5. //selección de la base de datos con la que vamos a trabajar
  6. mysql_select_db("xxxx");
  7.  
  8. $nombreclasi = $_POST["clasificado"];  
  9. $nombreclasi=str_replace(array('(','\'','´',',','.','{','}','+','´','*','¨','[',']','%','-','ç','&','/','%','\$','#','"','!','?','¡',')'),'',$nombreclasi);
  10. $nombreclasi2= substr(str_replace(" ", "-", $nombreclasi = $_POST['clasificado']), 0,40);
  11. $categoria = $_POST["categoria"];
  12.  
  13. //Fecha actual
  14. $fecha = date("Y-m-d");
  15. //Fecha vencimiento
  16. $fecha_exp = date('Y-m-d', strtotime('+3 month' . $fecha));
  17.  
  18.  
  19.  
  20. //Ejecucion de la sentencia SQL
  21.  
  22. $sql = 'INSERT INTO clasificados (clasificado,nombreclasi,fechas,fecha_exp,categoria) VALUES ("$nombreclasi","$nombreclasi2","$fecha","$fecha_exp","$categoria")';
  23.  
  24. if(mysql_query($sql,$conexion)){
  25. //obtenemos el ID del ultimo registro y hacer header
  26. $id_clasi = mysql_insert_id();
  27. header("location:ver.php?id=".$id_clasi."&nombre=".$nombreclasi);
  28. }else{
  29.  echo "tu mensaje de error";
  30. }
  31.  
  32.  
  33. ?>
  #13 (permalink)  
Antiguo 14/05/2011, 10:35
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: hacer insert si esta bien envie a url siguiente

En el ejemplo te mostre que agregaras mysql_error() para ver los errores SQL
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #14 (permalink)  
Antiguo 14/05/2011, 10:46
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: hacer insert si esta bien envie a url siguiente

mira como qdo ahora si
Código PHP:
Ver original
  1. if(mysql_query($sql,$conexion)){
  2. //obtenemos el ID del ultimo registro y hacer header
  3. $id_clasi = mysql_insert_id();
  4. header("location:ver.php?id=".$id_clasi."&nombre=".$nombreclasi);
  5. }else{
  6. echo 'error en la consulta: '.mysql_error();
  7. }
  #15 (permalink)  
Antiguo 14/05/2011, 10:47
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: hacer insert si esta bien envie a url siguiente

aja, y que error te da? o que es lo que esta mal?
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #16 (permalink)  
Antiguo 14/05/2011, 10:55
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: hacer insert si esta bien envie a url siguiente

cuando puse el .mysql_error me salio el error era de sql error de escritura
amigos muchas gracias por su excelente ayuda pido disculpas si incomode a alguien si tiene algun manual en donde pueda adquirir mas conocimiento de este lenguaje de manera fasil les estaria agradecido

KArma pa todo jejej

Etiquetas: insert, siguiente, url
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 14:01.