PHP / MySQL: Bir veritabanında her kayıt üzerinde yineleme

0 Cevap php

Ben bütün php / mysql şey yeni duyuyorum. Ben sunucu günlükleri (yaklaşık 300.000 öğeler) bir hafta değer var ve bazı analizler yapmak gerekir. Ben bir mysql db içine hepsini okuma ve daha sonra php ile bunları analiz planlıyorum.

Ben emin değilim şey bunların arasında dolaşmak için nasıl. Ben böyle bir şey yapacağını bir dosya okuma java kullanma:

Scanner s = new Scanner(myfile);
while(s.hasNext()){
    String line = s.nextLine();
    ~~ Do something with this record. 
}

Nasıl php kullanarak db mysql tüm kayıtları üzerinden yineleme mi? Böyle bir şey bir bellek aptal bir miktar alacağını düşünüyorum.

    $query = "SELECT * FROM mytable";
    $result = mysql_query($query);
    $rows = mysql_num_rows($result);
    for($j = 0; $j < $rows; ++$j){
            $curIndex   = mysql_result($result,$j,"index");
            $curURL     = mysql_result($result,$j,"something");
            ~~ Do something with this record
    }

Yani select deyimi bir sınır ekledik ve tüm kayıtlar ile sağlanıncaya oylandı kadar tekrarlayın. Bunu yapmak için daha standart bir yol var mı? Bu yerleşik bir yapacak var mı?

while($startIndex < $numberOfRows){

    $query = "SELECT * FROM mytable ORDERBY mytable.index LIMIT $startIndex,$endIndex";
    $result = mysql_query($query);
    $rows = mysql_num_rows($result);
    for($j = 0; $j < $rows; ++$j){
            $curIndex   = mysql_result($result,$j,"index");
            $curURL     = mysql_result($result,$j,"something");
            ~~ Do something with this record
    }
    $startIndex = $endIndex + 1;
    $endIndex = $endIndes + 10;
}

0 Cevap