Estoy tratando de insertar un bucle PHP con datos de mi base de datos mysql dentro de un script de Google Charts.
Mi resultado de la base de datos se ve así:
$result = $wpdb->get_results( "Query");Se supone que el ciclo que estoy tratando de hacer debe verse así
['$result', $result],Y esto es lo que he encontrado hasta ahora.
$count = 0; while ($count < count($result)) { echo "['" . $result[$count]->dato . "', " . $result[$count]->vaegt . "].<br>"; $count++; }Que crean la cadena que estoy buscando. El problema es que necesito eliminar la coma de la última cadena del bucle.
Probé la función LTRIM, pero la elimina de todas las cadenas del ciclo, no solo de la última.
¿Cuál sería la mejor solución para solucionar este problema?
En primer lugar, no use count() para obtener un resultado fijo en un bucle. Puede parecer conveniente, pero es más lento ya que realiza la operación una y otra vez en cada iteración. Primero asigne el resultado del conteo a una variable. Y personalmente, usaría un bucle for() aquí.
En segundo lugar, debe usar una condición dentro del bucle. En lugar de tratar de eliminar la última coma, simplemente ejecute una verificación en el recuento de iteraciones, si no es la última, agregue una coma.
$count = count($result); for($i = 1; $i <= $count; $i++) { echo "...."; if($i < $count) { echo ", "; } }Puede usar json_encode, creo que le dará el tipo de salida que desea.
Como esto :
$arr = array(); foreach ( $result as $res ) { $dato = $res->dato; $vaegt = $res->vaegt; $arr[$dato] = $vaegt; } $output = json_encode($arr);Luego pase $output a JS y utilícelo así:
var data = new google.visualization.DataTable("your JSON variable"); var options = { title:your option, legend:your option, chartArea:your option }; var chart = new google.visualization.LineChart(document.getElementById("the ID of the HTML element in which you want to output the result")); chart.draw(data, options);