Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/02/2005, 09:29
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
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,