Comunidad de diseño web y desarrollo en internet online

Controlar un Error

Citar            
MensajeEscrito el 16 Sep 2009 11:28 pm
Hola a todos, lo que yo deseo solucionar es como no mostrar un error de consulta sql.
Realizo una consulta sql para ver si existe ese registro, si existe le hago un update y lo actualiza correctamente, en el caso de que no exista le hago un insert, cosa que funciona perfectamente.
lo que yo deseo saber es como hacer que no muestre el error, el error se debe a que realiza una consulta sql y devuelve un valor vacio, ahi me muestra un error, no entiendo por que, si alguien tiene una solucion. Les dejo mi codigo PHP por las duas.

Código PHP :

function agregar_articulo($cod, $name, $precio, $fecha){
      $conex = $this->conexion();
      $sql_verif = "SELECT * FROM articulos WHERE nombre='$name'";
      $consulta2 = mysql_query($sql_verif);
      $res = mysql_result($consulta2, 0, "codigo");
      $sql = "INSERT INTO articulos(codigo, nombre, precio, fecha_ingreso) VALUES('$cod', '$name', '$precio', '$fecha')";
      $sql2 = "UPDATE articulos SET codigo='$cod', precio='$precio', fecha_ingreso='$fecha' WHERE nombre='$name'";
      if($res == ""){
         $this->insert($sql);
      }else{
         $this->update($sql2);
      }
      return $mensaje;
   }
         //     INSERT    //
   public function insert($sql){
      if(mysql_query($sql)){
            $mensaje = "Se ha ingresado el articulo ".$name." correctamente";
         }else{
            $mensaje = "Ha ocurrido un error al insertar el articulo, prueba mas tarde";
         }
         return $mensaje;
   }
        //    UPDATE    //
   public function update($sql2){
      if(mysql_query($sql2)){
            $mensaje = "Se ha actualizado el articulo ".$name." correctamente";
         }else{
            $mensaje = "Ha ocurrido un error al actualizar el articulo, prueba mas tarde";
         }
      return $mensaje;
   }


Gracias :D

Por Rakisuy

50 de clabLevel



Genero:Masculino  

Uruguay

firefox
Citar            
MensajeEscrito el 17 Sep 2009 12:56 am
Si colocas una arroba (@) antes de tu función desactivas el manejo de los errores, por ejemplo

Código PHP :

@mysql_query( $query );

De todas formas, eso no impide que el error ocurra, solo que el sistema lo ignora.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

mozilla
Citar            
MensajeEscrito el 17 Sep 2009 03:49 am
Pues como yo lo veo deberías contar la cantidad de registros devueltos en la primera consulta y a partir de ese dato hacer una cosa o la otra. Sería algo así:

Código PHP :

      $sql_verif = "SELECT * FROM articulos WHERE nombre='$name'"; 
      $consulta2 = mysql_query($sql_verif);
      $c = mysql_num_rows($consulta2);
      if ($c == 0) { // ir a insertar }
               else { // ir a actualizar }

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 17 Sep 2009 03:55 am
para saber que error te ha arrojado el sql puedes hacer algo como esto

[code]
<?php
if(mysql_query($consulta)){
$correcto;
}else{
echo $error.mysql_error($conn);
}
?>
[/$code]

donde $conn es el identificador de la conexion a la base de datos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 17 Sep 2009 10:17 am
gracias, tema solucionado.
Les hago una preguntita mas: vieron la variable $mensaje, la idea es que pase de la funcion insert o update a agregar_articulos y agregar_articulos devuelva su valor. eso me seria bastante util.

Saludos

Por Rakisuy

50 de clabLevel



Genero:Masculino  

Uruguay

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.