Foros del Web » Programando para Internet » PHP »

simplificar consulta

Estas en el tema de simplificar consulta en el foro de PHP en Foros del Web. Hola que tal, lo que pasa es que tengo un código que sirve para activar, borrar imágenes y activar usuarios y funciona correctamente, aquí el ...
  #1 (permalink)  
Antiguo 09/01/2012, 17:44
 
Fecha de Ingreso: agosto-2009
Mensajes: 292
Antigüedad: 15 años, 4 meses
Puntos: 5
simplificar consulta

Hola que tal, lo que pasa es que tengo un código que sirve para activar, borrar imágenes y activar usuarios y funciona correctamente, aquí el código:

Código PHP:
Ver original
  1. <?php
  2.  
  3. include_once("connectBD.php");
  4.  
  5. if($_GET['a'] == "activate" && $_GET['type'] == "img") {
  6.     $query = "SELECT * FROM IMAGES WHERE ID = '".$_GET['id']."' AND PIN = '".$_GET['pin']."'";
  7.     $result = mysql_query($query);
  8.    
  9.     $row = mysql_fetch_assoc($result);
  10.    
  11.     $query2 = "SELECT * FROM TMP_IMAGES WHERE ID = '".$row['ID']."'";
  12.     $result2 = mysql_query($query2);
  13.    
  14.     if(mysql_num_rows($result) == 1 && mysql_num_rows($result2) == 0) {
  15.         header("refresh: 3; url= http://web.com/preview.php?id=".$row['ID']);
  16.         echo "<div class=\"error\">Su imagen ya a sido activada anteriormente.</div>";
  17.     } elseif(mysql_num_rows($result) == 1) {
  18.         $sql_del = "DELETE FROM TMP_IMAGES WHERE ID = '".$row['ID']."'";
  19.         $result_del = mysql_query($sql_del);
  20.         header("refresh: 3; url= http://web.com/preview.php?id=".$row['ID']);
  21.         echo "<div class=\"success\">La imagen ha sido activada correctamente.</div>";
  22.     } else {
  23.         echo "<div class=\"error\">ERROR</div>";
  24.     }
  25. }
  26.  
  27. elseif($_GET['a'] == "delete"  && $_GET['type'] == "img") {
  28.     $query = "SELECT * FROM IMAGES I INNER JOIN THUMBNAILS T ON I.ID = T.ID WHERE I.ID = '".$_GET['id']."' AND I.PIN = '".mysql_real_escape_string($_GET['pin'])."'";
  29.     $result = mysql_query($query);
  30.    
  31.     if(mysql_num_rows($result) == 1) {
  32.         $row = mysql_fetch_assoc($result);
  33.         $delete_link = array("http://", ".web.com");
  34.         $str_link = str_replace($delete_link, '', $row['LOCATION']);
  35.         $str_link2 = str_replace($delete_link, '', $row['SQUARE_75']);
  36.         $str_link3 = str_replace($delete_link, '', $row['MEDIUM_640']);
  37.         unlink('servers/' . $str_link);
  38.         unlink($str_link2);
  39.         unlink($str_link3);
  40.        
  41.         $sql_del_img = "DELETE FROM IMAGES WHERE ID = '".$row['ID']."'";
  42.         $result_del_img = mysql_query($sql_del_img);
  43.        
  44.         $sql_del_img_tmp = "DELETE FROM TMP_IMAGES WHERE ID = '".$row['ID']."'";
  45.         $result_del_img_tmp = mysql_query($sql_del_img_tmp);
  46.        
  47.         $sql_del_thumb = "DELETE FROM THUMBNAILS WHERE ID = '".$row['ID']."'";
  48.         $result_del_thumb = mysql_query($sql_del_thumb);
  49.        
  50.         $sql_del_user = "UPDATE USERS SET UPLOADS = UPLOADS - 1 WHERE IUID = '".$row['IUID']."'";
  51.         $result_del_user = mysql_query($sql_del_user);
  52.        
  53.         echo "<div class=\"success\">La imagen ha sido borrada correctamente.</div>";
  54.     } else {
  55.         echo "<div class=\"error\">ERROR</div>";
  56.     }
  57. }
  58.  
  59. elseif($_GET['a'] == "activate"  && $_GET['type'] == "user") {
  60.     $query = "SELECT * FROM USERS WHERE IUID = '".$_GET['iuid']."' AND EMAIL = '".$_GET['email']."'";
  61.     $result = mysql_query($query);
  62.    
  63.     $row = mysql_fetch_assoc($result);
  64.    
  65.     $query2 = "SELECT * FROM TMP_USERS WHERE IUID = '".$row['IUID']."'";
  66.     $result2 = mysql_query($query2);
  67.    
  68.     if(mysql_num_rows($result) == 1 && mysql_num_rows($result2) == 0) {
  69.         header("refresh: 3; url=http://web.com/user.php?iuid=".$row['IUID']);
  70.         echo "<div class=\"error\">Su usuario ya a sido activado.</div>";
  71.     } elseif(mysql_num_rows($result) == 1) {
  72.         $sql_del = "DELETE FROM TMP_USERS WHERE IUID = '".$row['IUID']."'";
  73.         $result_del = mysql_query($sql_del);
  74.         header("refresh: 3; url=/");
  75.         echo "<div class=\"success\">Thank you for registering in Imagupload.</div>";
  76.     } else {
  77.         echo "<div class=\"error\">ERROR</div>";
  78.     }
  79. }
  80.  
  81. else {
  82.     echo "<div class=\"error\">La pagina no existe</div>";
  83. }
  84.  
  85. ?>

Pero lo que quiero hacer es simplificar el código para que no se vea y se me haga engorroso para cuando lo quiera modificar.

Alguien que me pueda ayudar???

Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 10/01/2012, 05:12
Avatar de efedefernan  
Fecha de Ingreso: diciembre-2007
Ubicación: Cantabria
Mensajes: 91
Antigüedad: 17 años
Puntos: 11
Respuesta: simplificar consulta

Una pequeña recomendación es que uses programacion orientada a objetos.
Create una clase y creas unos metodos en funcion de lo que necesites, el codigo lo tendras en la clase y cada vez que necesites actualizar, solamente tendrás que modificar el codigo dentro de tu clase, porque la llamada a los metodos desde tu pagina no cambiará.

Un saludo.
  #3 (permalink)  
Antiguo 11/01/2012, 17:42
 
Fecha de Ingreso: agosto-2009
Mensajes: 292
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: simplificar consulta

Hola que tal, muchas gracias por responder, la verdad no se nada de PHP OO y ayer leyendo la documentación de PHP OO en php.net y con un ejemplo en foro logre hacer este código pero la verdad no se si este bien y no he podido probarlo porque mi cuanta en el hosting esta suspendida. Aquí el código:

Código PHP:
Ver original
  1. <?php
  2.  
  3. class activarUsuario {
  4.    
  5.     public function consultarBD($query) {
  6.         $this->consulta=mysql_query($query, $this->enlace);
  7.     }
  8.    
  9.     public function obtenerdatosBD() {
  10.         $this->resultado=mysql_fetch_assoc($this->consulta);
  11.         return $this->resultado;
  12.     }
  13.    
  14.     public function comprobar() {
  15.         if($_GET['a'] == "activate" && $_GET['type'] == "img") {
  16.             $this->consultarBD("SELECT * FROM USERS WHERE IUID = '".$_GET['iuid']."' AND EMAIL = '".$_GET['email']."'");
  17.             $row=$obj->obtenerdatosBD();
  18.         }
  19.     }
  20.    
  21.     public function activar() {
  22.         if(mysql_num_rows($row) == 1) {
  23.             $this->consultarBD("DELETE FROM TMP_USERS WHERE IUID = '".$row['IUID']."'");
  24.         }
  25.     }
  26.    
  27. }
  28.  
  29. ?>

La verdad se que tiene muchos errores y si me pudieran ayudar a corregirlos se los agradecería mucho.

Saludos y gracias de antemano
  #4 (permalink)  
Antiguo 13/01/2012, 01:29
Avatar de efedefernan  
Fecha de Ingreso: diciembre-2007
Ubicación: Cantabria
Mensajes: 91
Antigüedad: 17 años
Puntos: 11
Respuesta: simplificar consulta

Antes de que te den el código hecho, te recomiendo te leas un pequeño manual sobre la POO en php.

Una vez entiendas la dinamica de la programación POO te resultará muy facil crear tus propias clases.

La esencia de la clase que has creado es buena, pero sería recomendable crear unas propiedades, un constructor (si lo ves necesario), y unos metodos que en ocasiones querrás que sean privados y otras que sean públicos o estaticos , etc. etc. etc.

Luego te tienes que fijar que los metodos son funciones al uso, por lo que si vas a utilizar variables como en tu caso $_GET, una de dos, o las declaras como variables globales, o las tendras que pasar como parametros.

Mi pequeño consejo es que leas un pequeño manual acerca de la POO.

Un saludo.

Etiquetas: mysql, simplificar, sql, usuarios
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 09:03.