elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Ayudenme con BD
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayudenme con BD  (Leído 1,944 veces)
luis108

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayudenme con BD
« en: 21 Mayo 2012, 00:33 am »

Holas a todos miren toy haciendo una pagina de musica en php y base de datos pero tengo un problema cuando pongo este codigo para llamar alos artistas se demora como 2 minutos para aparecer depende del genero que escoja supongamos escojo reggaeton y demora porque tengo como 300 artistas :S.. toy con host de pago hostgator

Citar
<?php
if (!empty($genero)) {
$respuesta_art = @mysql_query("SELECT artista,genero FROM artistas where genero = '".$genero."' ORDER BY artista");
}elseif(!empty($letra)){
if($letra == "1" || "2"){
$respuesta_art = @mysql_query("SELECT artista,genero FROM artistas WHERE artista RLIKE '^[".$letra."]' ORDER BY artista ASC");
}else{
$respuesta_art = @mysql_query("SELECT artista,genero FROM artistas WHERE SUBSTRING(artista,1,1) = '".$letra."'");
}
}else{
$respuesta_art = @mysql_query("SELECT * FROM artistas ORDER BY RAND() LIMIT 40");
}
## Imprimir
while ($row = mysql_fetch_array($respuesta_art))
{
$resul = mysql_query("SELECT * FROM canciones WHERE artista = '".$row[artista]."'");
$numerorows = mysql_num_rows($resul);
$conteo++;
if ($conteo==1){echo '<div id="capa1" class=visible>';}
if ($conteo==41){echo '</div><div id="capa2" class=Novisible>';}
if ($conteo==81){echo '</div><div id="capa3" class=Novisible>';}
if ($conteo==121){echo '</div><div id="capa4" class=Novisible>';}
if ($conteo==161){echo '</div><div id="capa5" class=Novisible>';}
// Variables arreglados con signos
$gen=strtolower(str_replace(" ","-",$row[genero]));
$art=strtolower(str_replace(" ","-",$row[artista]));
#Imprimir
echo"<li><a href=\"./".$gen."/".$art."/\" title=\"".ucwords($row[artista])."\">".ucwords($row[artista])."</a></li>";
}
?>

y tambien ayudenme con esto para otro sistema..

yo con esto llamo alas variables generales

Citar
<?php
include("includes/config.php");
//Asignando Variables ;} x Luisitoz
$dir_gen = "gns/"; 
$GenGet = (!empty($_GET['genero']) ? $_GET['genero'] : "reggaeton");
$ext = ".php"; //extension de la listas
$ArtGet =  ($_GET['genero']);
$ideCan =  ($_GET['cancion']);
$artista = ucwords(str_replace("-", " ", $_GET['artista']));
$cancion = str_replace("-", " ", $_GET['cancion']);
$letra = str_replace("-", " ", $_GET['letra']);
//Fin De Varibles
?>

y para que muestre los generos en php le puse esto que funciona de maravilla

Citar
<?php
if(file_exists($dir_gen.$GenGet.$ext))
{
include($dir_gen.$GenGet.$ext);
}
else
{
echo "<div align=\"left\" id=\"artista\"><ul><li><a href=\"$direccion\" title=\"Escucha Musica Online Gratis ! HOGARMUSICAL.com\">Musica de Inicio !</a></li></ul></div>";
}
?>

pero el problema ocurre cuando le pongo esto codigo ya no me aparece x default lo que puse que seria "reggaeton"

Citar
<?
if(isset($_GET['letra']))
{
if(file_exists($dir_gen.$letra.$ext))
{
include($dir_gen.$letra.$ext);
}
else
{
echo "<div align=\"left\" id=\"artista\"><ul><li><a href=\"$direccion\" title=\"Escucha Musica Online Gratis ! HOGARMUSICAL.com\">Musica de Inicio !</a></li></ul></div>";
}
}else if(isset($_GET['genero']))
{
if(file_exists($dir_gen.$GenGet.$ext))
{
include($dir_gen.$GenGet.$ext);
}
else
{
echo "<div align=\"left\" id=\"artista\"><ul><li><a href=\"$direccion\" title=\"Escucha Musica Online Gratis ! HOGARMUSICAL.com\">Musica de Inicio !</a></li></ul></div>";
}
}
?>


« Última modificación: 21 Mayo 2012, 01:10 am por luis108 » En línea

WarGhost
I love basket


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Ayudenme con BD
« Respuesta #1 en: 21 Mayo 2012, 02:15 am »

Es normal que te tarde tanto, estas haciendo muchísimas consultas, en un host compartido siempre te ira lento ya que limitan las consultas, si quieres usar ese algoritmo lo mejor que puedes hacer es un sistema de cacheo para no tener que hacer todas las peticiones cada vez que un usuario visita la web, y asi solo lo haces 1 vez al día o como prefieras configurarlo.

Otra forma seria replantearte el algoritmo entero y buscar algún modo de no hacer tantas peticiones.

Tip: Siempre que no sea 100% imprescindible, no hagas consultas dentro de un bucle, ya que esto ralentizara mucho tu sistema.
Tip2: Organiza bien tu base de datos, mysql es un gestor de bases de datos muy potente, pero si no esta bien organizado ni estructurado puede llegar a ser muy lento con bases de datos muy grandes, con lo cual te recomiendo que utilices indices.
Tip3: después de que terminar de hacer cada consulta, utiliza mysql_free_result, así liberaras la memoria que ya no necesitas.
Tip4: Haz tu código lo mas legible posible, utiliza el tabulador para ordenador tu código y utiliza camelCase para nombrar tus funciones, esto hara que a la hora de pedir ayuda en algunos de tus códigos sea mas fácil de entender para otros programadores.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayudenme
Ingeniería Inversa
Chop 1 2,087 Último mensaje 14 Septiembre 2004, 12:46 pm
por TaN€R
ayudenme
Ingeniería Inversa
acni1 6 3,320 Último mensaje 24 Diciembre 2004, 12:07 pm
por acni1
ayudenme
Diseño Gráfico
kitaroclown 1 3,735 Último mensaje 27 Marzo 2005, 18:01 pm
por Sub_Cero
S.O.S !!! Ayudenme!!!!
Electrónica
Nefertity 1 2,297 Último mensaje 5 Abril 2005, 23:00 pm
por botboat
Ayudenme...
Diseño Gráfico
Diabolik Demon 4 2,296 Último mensaje 12 Julio 2005, 12:59 pm
por Diabolik Demon
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines