Pregunta sobre Developing with WordPress de Wordpress:

problema de sql foreach

Un usuario pregunt贸 馃憞

Yo uso el siguiente c贸digo:

    global $wpdb;
     $ot = $_GET["ot"];
     $query = "SELECT ort, wahlberechtigte, ungueltige, gueltige, CDU, SPD, UWG, Gruene, FDP, otix FROM wp_kommunalwahl WHERE ortsteil='" . $ot . "' ORDER BY ortsteil, otix";
     $result = $wpdb->get_results($query);
     $anz = $wpdb->num_rows;
 	foreach ($result as $row) {
	    $otix = intval($row->otix);
	    $aort[$otix] = $row->ort;
	    $awberechtigte[$otix] = intval($row->wahlberechtigte);
	    $aungueltige[$otix] = intval($row->ungueltige);
	    $agueltige[$otix] = intval($row->gueltige);
	    $acdu[$otix] = intval($row->CDU);
	    $aspd[$otix] = intval($row->SPD);
	    $auwg[$otix] = intval($row->UWG);
	    $agruene[$otix] = intval($row->Gruene);
	    $afdp[$otix] = intval($row->FDP);
	}

La pregunta seleccionada funciona perfectamente. Los datos recibidos son correctos. El problema: la cl谩usula foreach recupera los datos pero no se detiene al final de la lista. Funciona con un l铆mite de tiempo. Como resolver el problema ??? 隆Si solo hay un juego, funciona!

Este tema fue modificado hace 1 a帽o, 5 meses por. Este tema fue modificado hace 1 a帽o, 5 meses. Este tema fue modificado hace 1 a帽o, 5 meses por. Este tema fue modificado hace 1 a帽o, 5 meses por.

(@ alegremente)

Hace 1 a帽o, 5 meses

Debe incluir una cl谩usula LIMITADA en su pregunta.

Este no es un c贸digo completo, 驴verdad? El foreach no hace nada con los datos, sino que los transfiere desde un objeto a la parte inferior de una matriz. Supongo que todav铆a tiene que procesar las matrices por separado.

No use este c贸digo en su sitio hasta que haya instalado alguna seguridad. Tal como est谩 ahora, cualquier pirata inform谩tico podr铆a inyectar SQL en su consulta a trav茅s de la URL.

(@diondesigns)

Hace 1 a帽o, 5 meses

Primero, reemplace estas dos l铆neas:

$ot = $_GET["ot"];
$query = "SELECT ort, wahlberechtigte, ungueltige, gueltige, CDU, SPD, UWG, Gruene, FDP, otix FROM wp_kommunalwahl WHERE ortsteil='" . $ot . "' ORDER BY ortsteil, otix";

con esta 煤nica l铆nea:

$query = $wpdb->prepare('SELECT ort, wahlberechtigte, ungueltige, gueltige, CDU, SPD, UWG, Gruene, FDP, otix FROM wp_kommunalwahl WHERE ortsteil = %s ORDER BY ortsteil, otix', $_GET["ot"]);

Esto eliminar谩 la consulta de inyecci贸n SQL mencionada por Joy. (Hay mejores formas de lograr esto, pero arriba est谩 el m茅todo 芦Aprobado por WordPress禄).

El es $Wpdb->get_results() la funci贸n tiene problemas graves de memoria y CPU si la consulta devuelve una gran cantidad de datos. Consulte su registro de errores de PHP para verificar que el problema est茅 relacionado con la CPU o la memoria. La soluci贸n de su problema depende del tipo de error que est茅 ocurriendo.

(@gottfrieds)

Hace 1 a帽o, 5 meses

Hola, encontr茅 el error en el siguiente bucle. Muchas gracias por su ayuda.

Esta respuesta fue modificada hace 1 a帽o, 5 meses.

驴Solucion贸 tu problema??

0 / 0

Deja una respuesta 0

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *