Foros del Web » Programando para Internet » PHP »

Comprobación al insertar

Estas en el tema de Comprobación al insertar en el foro de PHP en Foros del Web. Hola lo que hago es insertar en una bd, y lo que quiero es comprobar si se ha insertado bien o no u depoendiendo de ...
  #1 (permalink)  
Antiguo 14/02/2005, 03:13
Avatar de sanjo  
Fecha de Ingreso: enero-2005
Mensajes: 404
Antigüedad: 12 años, 10 meses
Puntos: 0
Comprobación al insertar

Hola lo que hago es insertar en una bd, y lo que quiero es comprobar si se ha insertado bien o no u depoendiendo de esto mostrar un mensaje u otro.
Y otra cosa tb quiero que antes de insertar compruebe haber si hay alguna con igual registro y que muestre un mensaje, me puedes qyudar un pokillo
  #2 (permalink)  
Antiguo 14/02/2005, 07:21
Avatar de baklao  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Ana - Isla de Margarita
Mensajes: 482
Antigüedad: 13 años
Puntos: 0
Hola que tal porque no pruebas usando la funcion confirm() de javascript. te aseguro que eso te servira muy bien.

Suerte y Salu2.

Bye
__________________
Atte. Mohamed :aplauso:
  #3 (permalink)  
Antiguo 14/02/2005, 09:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Las función mysql_query() arroja un "false" si no se ejecutó correctamente, así que puedes usarla bajo un IF() para determinar si hay un error o no .. además puedes usar un @ delante de la función para ocultar los mensajes de error de PHP que van a ocasionarse y de ahí tomar el total control sobre el error por parte de tu código:

Código PHP:
if (@mysql_query($sql)){
echo 
"Hay un error; mysql dice: ".mysql_error();
} else {
echo 
"Registro insertado OK";

El hecho de usar mysql_error() nos permite ver el mensaje de error exacto de Mysql que se originó.

También tienes la función mysql_affected_rows() para ver cuantas "filas" afectó tu consulta (tipo DELETE, UPDATE o INSERT) para comprobar si es correcto lo que estabas intentando hacer (pasado que dé o no error de tipo SQL o conexión).

NO es recomendable mostrar un mensaje de error o exito en el mismo flujo del código .. es altamente recomendable redireccionar hacia otra página de error/exito o bien a si misma con una variable de control que informe que estado está el proceso (para "ejecutar" o para "mostrar" mensajes).

Código PHP:
if (@mysql_query($sql)){
  
header ("Location: error.php");
  exit;
} else {
  
header ("Location: ok.php");
  exit;


Para el tema de verificar la existencia de un registro bajo cierta condición de un valor de uno de tus campos (o más condiciones dependiendo de como lo quieras) puedes "contar" el n° de registros que te va arrojar tu consulta con COUNT() de Mysql o bien con mysql_num_rows() de PHP:

Código PHP:
<?php
// conecta a tu BD .. etc ..

$sql="SELECT COUNT(*) FROM tabla WHERE campo='$condicion'";
$resultado=mysql_query($sql) or die (mysql_error());
$total=msyql_result($resultado,0);
if (
$total == 1){
  echo 
"Existe ya este registro con tal condición";

?>
Un saludo,
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 07:29.