Foros del Web » Programando para Internet » PHP »

simplificar consultas

Estas en el tema de simplificar consultas en el foro de PHP en Foros del Web. Hola que tal, llevaba tiempo haciendo una código php / mysql que forma parte de un script que tengo para subir imágenes y después de ...
  #1 (permalink)  
Antiguo 26/05/2012, 22:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 292
Antigüedad: 15 años, 3 meses
Puntos: 5
simplificar consultas

Hola que tal, llevaba tiempo haciendo una código php / mysql que forma parte de un script que tengo para subir imágenes y después de vario tiempo de estarlo desarrollando y hacerlo funcionar bien por fin lo he terminado pero el problema es que quedo con revoltijo y quisiera ver si alguien me puede ayudar o si me pudieran dar sugerencias para optimizarlo se los agradecería bastante.

Aquí el código:

Código PHP:
<?php
 
$query_iuid 
"SELECT EMAIL FROM FREE_USERS WHERE EMAIL = '".mysql_real_escape_string($_POST['email'])."'";
$result_query_iuid mysql_query($query_iuid);
if(
mysql_num_rows($result_query_iuid) == 1) {
    
$query_update "UPDATE FREE_USERS SET UPLOADS = UPLOADS + 1 WHERE EMAIL = '".mysql_real_escape_string($_POST['email'])."'";
    
$result_query_update mysql_query($query_update);
} else {
    
$query_add_user "INSERT INTO FREE_USERS VALUES('$IUID', '1', '".date("Y/n/j, H:i:s")."', '".mysql_real_escape_string($_POST['email'])."')";
    
$result_query_add_user mysql_query($query_add_user);

    
$query_add_tmp_user "INSERT INTO TMP_FREE_USERS VALUES('$IUID', '".date("Y/n/j, H:i:s")."')";
    
$result_query_add_tmp_user mysql_query($query_add_tmp_user);
}

$query_search_iuid "SELECT IUID FROM FREE_USERS WHERE EMAIL = '".mysql_real_escape_string($_POST['email'])."'";
$result_query_search_iuid mysql_query($query_search_iuid);
if(
mysql_num_rows($result_query_search_iuid) == 1) {
    
$query_more_iuid "SELECT * FROM FREE_USERS WHERE EMAIL = '".mysql_real_escape_string($_POST['email'])."'";
    
$resultquery_more_iuid mysql_query($query_more_iuid);
    
$row mysql_fetch_assoc($resultquery_more_iuid);
    
$query_insert_images "INSERT INTO IMAGES VALUES ('".$row['IUID']."', '$id', '$name', '".strtoupper($type)."', '$size_format', '$dimensions', '$date', '$location', '$image_base64', '$pin')";
    
$result_query_insert_images mysql_query($query_insert_images);
    
$query_insert_tmp_images "INSERT INTO TMP_FREE_IMAGES VALUES ('$id', '$date')";
    
$result_query_insert_tmp_images mysql_query($query_insert_tmp_images);
} else {
    
$query_insert_images "INSERT INTO IMAGES VALUES ('$IUID', '$id', '$name', '".strtoupper($type)."', '$size_format', '$dimensions', '$date', '$location', '$image_base64', '$pin')";
    
$result_query_insert_images mysql_query($query_insert_images);
    
$query_insert_tmp_images "INSERT INTO TMP_FREE_IMAGES VALUES ('$id', '$date')";
    
$result_query_insert_tmp_images mysql_query($query_insert_tmp_images);
}

?>
Saludos y gracias de antemano

Última edición por WinderJerter; 26/05/2012 a las 22:41
  #2 (permalink)  
Antiguo 27/05/2012, 18:25
Avatar de iukaeru  
Fecha de Ingreso: mayo-2012
Mensajes: 127
Antigüedad: 12 años, 5 meses
Puntos: 12
Respuesta: simplificar consultas

¿Te funciona BIEN?

Principio KISS = "http://es.wikipedia.org/wiki/Principio_KISS".

Si te funciona no lo toques.
  #3 (permalink)  
Antiguo 28/05/2012, 22:09
 
Fecha de Ingreso: agosto-2009
Mensajes: 292
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: simplificar consultas

Hola que tal, tengo una duda relacionada sobre el código que publique al principio del post.

Lo que pasa es que andaba subiendo una imágenes de tamaño máximo de 762 KB y todo andaba bien, pero a la hora de tratar de subir una imagen de 858 KB empezaron los problemas, pero los problemas vienen con la base de datos, o al menos eso creo yo, porque lo que sucede es que si el usuario ya existe le aumenta 1 y si no crea uno nuevo, guarda los datos que tiene que guardar en TMP_FREE_IMAGES, THUMBNAILS, etc. pero el problema es que no guarda los datos en la tabla IMAGES y esto solo ocurre con las imágenes mayores a 762 KB.

Alguien sabe a que se puede deber estos?

Saludos y gracias de antemano
  #4 (permalink)  
Antiguo 29/05/2012, 05:21
 
Fecha de Ingreso: mayo-2012
Mensajes: 61
Antigüedad: 12 años, 6 meses
Puntos: 23
Respuesta: simplificar consultas

Cita:
Iniciado por iukaeru Ver Mensaje
¿Te funciona BIEN?

Principio KISS = "http://es.wikipedia.org/wiki/Principio_KISS".

Si te funciona no lo toques.
Ese principio viene a decir, de hacer las cosas lo mas simple posible, si bien es cierto que si algo funciona no debe tocarse, entiendo que ese código puede ser organizado y optimizado.

Muchos se aferran a este pensamiento, y así se ven los códigos que se ven.

Saludos!
  #5 (permalink)  
Antiguo 29/05/2012, 06:21
 
Fecha de Ingreso: octubre-2011
Ubicación: Chile
Mensajes: 52
Antigüedad: 13 años, 1 mes
Puntos: 17
Respuesta: simplificar consultas

Podrias escapar todas las variables al inicio, luego tomar todas las consultas y guardarlas en una variable, quizás un object para terminar con solo el procesamiento de los datos.
Ej:

<?php
// sanitizar
foreach($_POST as $var => $val) {
$newpost["$val"] = limpiar($val);
}

// sqls
$queries->insertimage = "INSERT XXXXXXXXXXXXXXXX ETC";
$queries->insertimage2 = "INSERT XXXXXXXXXXXXXXXX ETC";
$queries->insertimage3 = "INSERT XXXXXXXXXXXXXXXX ETC";

// procesamiento
if(blablabla) {
mysql_query($queries->algo);
// ????
// mostrar
}
?>

Una cosa es mantener las cosas simples, pero lo simple no necesariamente es lo mas optimo.
Ademas si programas con este "nivel de complejidad" las cosas en el futuro se te hacen mas simples.

// codigo sin testear :P
__________________
No respondo mensajes privados, pregunte por foro como todos los mortales.
  #6 (permalink)  
Antiguo 29/05/2012, 06:26
 
Fecha de Ingreso: mayo-2012
Mensajes: 61
Antigüedad: 12 años, 6 meses
Puntos: 23
Respuesta: simplificar consultas

yo incluso definiría cada INSERT en el momento de ejecutarla, si no habrá sentencias definidas que no se ejecutaran nunca (dependiendo de la salida del programa).

Saludos!

Etiquetas: mysql, simplificar, sql
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 16:59.