The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Especial Fóruns > Programação Web, Web 2.0 e mashups
.
google unix.com



Programação Web, Web 2.0 e mashups Discuta Programação Web e Web Server Administration, incluindo LAMP, Apache, MySQL, Flash, HTML, SEO, mashups e Web APIs e outros tópicos.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Carsten's Random ramblings em MySQL, PHP, programação e outras coisas iBot BigAdmin Solaris RSS 0 02-04-2009 02:30
Mac OS X 10.5: Time Machine não voltar até AirPort Extreme AirPort Discos iBot OS X suporte RSS 0 11-17-2008 12:10
AirPort Quick Assist iBot OS X suporte RSS 0 11-14-2008 04:50
Mac OS X 10.5.5: Não é possível transformar em AirPort depois desligando-reiniciando iBot OS X suporte RSS 0 10-27-2008 11:30
Ligação ao Aeroporto rede Solaris giax Sun Solaris 1 07-17-2007 03:05

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 05-02-2009
worchyld worchyld is offline
Usuário
  
 

Join Date: Mar 2009
Lugares: 27
MySQL: Random oferece para todos os aeroportos

Preciso de escrever um query do MySQL onde ele faz um loop através de cada aeroporto e gera 10 aleatória ofertas (é a minha mesa oferece 990.000 + linhas)

O código abaixo eu tenho obras para 1 aeroporto, mas logo que se torna maior que atrasa DIREITO baixo.

Trata-se utilizando PHP / MySQL

No momento, o que demora muito mais de um minuto para executar o que é muito tempo - Eu preciso muito, muito mais rápida.

Alguém pode ajudar?

Código:
/**
 * This code takes over a minute to run.  How do I make it quicker?
 */
// Get airports
$sql0    = 'SELECT airportcode FROM airports ORDER BY airportcode ASC';
$query    = $this->db->query($sql0);

// Loop through airports
foreach ($query->result() as $row)
{
    // Get a random offer so long as the airport matches
    $sql1 = 'SELECT T.id, T.DepAirportCode
            FROM offers T
            JOIN (
                SELECT FLOOR( MAX( id ) * RAND( ) ) AS id
                FROM offers
                ) AS x ON T.id >= x.id
            WHERE 
                T.DepAirportCode="'.$row->airportcode.'" 
            LIMIT 
                10';
    
    // Loop through random offers
    $query1    = $this->db->query($sql1);
    foreach ($query1->result() as $row)
    {
        print $row->id;
        print $row->DepAirportCode;
    } // next
} // next
  #2 (permalink)  
Old 06-10-2009
Figaro figaro is offline
Usuário
  
 

Join Date: Jan 2007
Lugares: 268
Você precisa combinar as duas consultas em 1 consulta e de modo a que, pelo menos, a cláusula WHERE tem o seguinte aspecto:
ONDE T. DepAirportCode \u003d airports.airportcode
Tenha uma leitura do presente para seleccionar aleatoriamente uma linha: SQL para Selecionar uma fila de um banco de dados aleatórios tabela
  #3 (permalink)  
Old 06-10-2009
worchyld worchyld is offline
Usuário
  
 

Join Date: Mar 2009
Lugares: 27
Muito obrigado, vou ter resolvido a questão por outro meio.

Obrigado novamente!
Reply

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 01:11.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0