prueba la cantidad indefinida de booleano para la declaración if

Tengo una declaración for que ejecuta algunas consultas mysql, pero no siempre serán la misma cantidad de consultas como esta:

for($i=0;$i<count($phones);$i++){
    $results[$i] = mysql_query("[ACTUAL MYSQL QUERY]");
}

Como puede ver, puse el resultado en una matriz y quiero asegurarme de que todas las consultas fueron exitosas usando una declaración if. ¿Cómo haría eso? Estaba pensando eval() pero eso no parece confiable.

preguntado el 28 de agosto de 11 a las 00:08

2 Respuestas

Puedes usar array_filter para comprobar toda la lista de $ resultados a la vez, porque mysql_query regresará false para consultas fallidas.

if (count($results) == count(array_filter($results))) {
    // all succeeded
}

(Creo que, sin embargo, podría tener problemas si mantiene abiertos demasiados identificadores de consultas concurrentes; consumen algo de memoria. mysql_fetch_assoc en su bucle, o simplemente mantenga un booleano, luego libere los controladores de resultado).

Respondido 28 ago 11, 04:08

Antes de que el for loop declara una variable booleana que tiene el valor verdadero. Luego, a medida que recorre el recorrido, si alguno de los valores es falso, establezca la variable en falso. Todas las consultas tuvieron éxito si la variable booleana sigue siendo verdadera después del ciclo.

Respondido 28 ago 11, 05:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.