Mistři v programování na #hovnokod

PHP #1125

Takže napřed nad tabulkou s řádově sty miliony záznamů pustíme select s where podle reguláru, který matchne skoro všechno. Aby SQL server neměl moc práce, nepoužijeme DISTINCT a místo toho každej záznam ověříme přes in_array. Kdyby náhodou in_array nefungoval, tak to vememe ještě jednou přes array_unique a následně to zase nacpeme do databáze... Co na tom, že stačilo poslat jednu SQL query.

$sql = "SELECT program FROM ".$table." WHERE program RLIKE '^[a-zA-Z]+[a-zA-Z0-9/()._\-]+$'";
$result = perform_query($sql, $link);
while($row = fetch_array($result, 'ASSOC')) {
    if (!in_array($row['program'],$cacheProgramValues))        
            array_push($cacheProgramValues, $row['program']);
}

$cacheProgramValues=array_unique($cacheProgramValues);
...
$insertProgram = "INSERT INTO ".CACHETABLENAME." (tablename, type, value, updatetime) VALUES ";
foreach($cacheProgramValues as $value) {
    $add = "('".$table."', 'PROGRAM', '".$value."', '".$updateTime."'),";
    $insertProgram .= $add;
}

Jan Krajdl,