The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Spesielle Forums > Programvære, Web 2.0 og blandinger
.
google unix.com



Programvære, Web 2.0 og blandinger Diskuter programvære og Web Server Administration, inkludert LAMP, Apache, MySQL, Flash, HTML, SEO, blandingar og andre Web APIene og emner.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Carsten Random Ramblings på MySQL, PHP, programmering og ting iBot Solaris BigAdmin RSS 0 02-04-2009 02:30
Mac OS X 10.5: Time Machine ikke tilbake opptil AirPort Extreme AirPort Disker iBot OS X Support RSS 0 11-17-2008 12:10
AirPort Quick Assist iBot OS X Support RSS 0 11-14-2008 04:50
Mac OS X 10.5.5: Kan ikke slå AirPort på etter at du har slått den av og starte iBot OS X Support RSS 0 10-27-2008 11:30
Connecting Solaris til flyplassen nettverk 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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 05-02-2009
worchyld worchyld is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 27
MySQL: Tilfeldige tilbud for alle flyplasser

Jeg trenger å skrive en MySQL spørring hvor den looper igjennom alle flyplasser og genererer 10 tilfeldige tilbud (min tilbyr tabellen er 990.000 + rader)

Koden jeg har nedenfor virker for 1 flyplass, men så snart det blir større den bremser ned.

Dette er bruk av PHP / MySQL

I det øyeblikk det tar godt over et minutt å kjøre noe som er altfor lang - trenger jeg det mye, mye raskere.

Kan noen hjelpe?


Code:
/**
 * 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
Registrert bruker
  
 

Bli Date: Jan 2007
Innlegg: 268
Du må kombinere de to forespørsler til 1 spørring og slik at minst WHERE-leddet ser ut som følger:
WHERE T. DepAirportCode \u003d airports.airportcode
Har en lest av denne for å velge en tilfeldig rad: SQL for å velge en tilfeldig rad fra en database tabell
  #3 (permalink)  
Old 06-10-2009
worchyld worchyld is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 27
Mange takk, jeg har løst problemet på annen måte.

Thanks again!
Reply

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 04:20.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0