Ver Mensaje Individual
  #8 (permalink)  
Antiguo 29/02/2004, 04:03
DJ-Dom
 
Fecha de Ingreso: noviembre-2003
Mensajes: 114
Antigüedad: 20 años, 5 meses
Puntos: 0
Si debe ser como dices, pero yo veo el codigo igual como tu ejemplo, te pongo la funcion aqui:

Código PHP:
function boolean() {

    global 
$query_arr$querymode$stype;
    global 
$res$allres$rescount;


if (
count($query_arr) == 1) {
    foreach (
$allres[0] as $k => $v) {
        if (
$k) {
            
$res .= pack("N",$k);
        }
    }
    
$rescount intval(strlen($res)/4);
    unset(
$allres);
    return;
} else {

    if (
$stype == "AND") {
        for (
$i=0$i<count($query_arr); $i++) {
            if (
$querymode[$i] == 2) {
                
$min $i;
                break;
            }
        }
        for (
$i=$min+1$i<count($query_arr); $i++) {
            if (
count($allres[$i]) < count($allres[$min]) && $querymode[$i] == 2) {
                
$min $i;
            }
        }
        for (
$i=0$i<count($query_arr); $i++) {
            if (
$i == $min) {
                continue;
            }
            if (
$querymode[$i] == 2) {
                foreach (
$allres[$min] as $k => $v) {
                    if (
array_key_exists($k,$allres[$i])) {
                    } else {
                        unset(
$allres[$min][$k]);
                    }
                }
            } else {
                foreach (
$allres[$min] as $k => $v) {
                    if (
array_key_exists($k,$allres[$i])) {
                        unset(
$allres[$min][$k]);
                    }
                }
            }
        }
        foreach (
$allres[$min] as $k => $v) {
            if (
$k) {
                
$res .= pack("N",$k);
            }
        }
        
$rescount intval(strlen($res)/4);
        return;
    }
    
    
    if (
$stype == "OR") {
        for (
$i=0$i<count($query_arr); $i++) {
            if (
$querymode[$i] != 1) {
                
$max $i;
                break;
            }
        }
        for (
$i=$max+1$i<count($query_arr); $i++) {
            if (
count($allres[$i]) > count($allres[$max]) && $querymode[$i] != 1) {
                
$max $i;
            }
        }
        for (
$i=0$i<count($query_arr); $i++) {
            if (
$i == $max) {
                continue;
            }
            if (
$querymode[$i] != 1) {
                foreach (
$allres[$i] as $k => $v) {
                    
$allres[$max][$k] = 1;
                }
            } else {
                foreach (
$allres[$i] as $k => $v) {
                    if (
array_key_exists($k,$allres[$max])) {
                        unset(
$allres[$max][$k]);
                    }
                }
            }
        }
        foreach (
$allres[$max] as $k => $v) {
            if (
$k) {
                
$res .= pack("N",$k);
            }
        }
        
$rescount intval(strlen($res)/4);
        return;
    }
    
}


Se que puse codigo de mas, pero puedes notar la funcion.
En fin el script necita mucho mas de 30 segundos.
__________________
Soporte y Creaciones PHP-Nuke:
NukeProjects.Net

if($Necesitas=="Ayuda"){
echo "No dudes en pedirla";
}