Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

213
Views
Mostrar datos de matriz php en chart.js javascript

Estoy tratando de mostrar un gráfico usando chart.js, los datos del gráfico se obtendrán de una base de datos php mysql y se mostrarán en la función a continuación;

 const pieChart2 = new Chart(document.getElementById('chats'), { type: 'pie', data: { labels: ['John Mark', 'Sandra Friday', 'Kelvin Russel'], //php code to display data datasets: [{ data: [25, 12, 4], //php code to display data backgroundColor: ['#FF6384', '#36A2EB', '#FFCE56'], hoverBackgroundColor: ['#FF6384', '#36A2EB', '#FFCE56'] }] }, options: { responsive: true } });

Puedo obtener datos de mi base de datos

 $rscht = mysqli_query($conn,"SELECT users.name, COUNT(*) AS times FROM chat_logs INNER JOIN users ON chat_logs.sender_email = users.email GROUP BY chat_logs.sender_email ORDER BY times DESC");

También puedo convertir los datos a una matriz php usando jsonencode

 <?php $chatstack = array(); while($userchat= mysqli_fetch_array($rscht)){ $chatstackitem['label'] = $userchat['name']; $chatstackitem['value'] = $userchat['times']; array_push( $chatstack, $chatstackitem ); } $chatArray = json_encode( $chatstack ); print_r( $chatArray ); ?>

El resultado anterior me da

 <canvas id="chats"></canvas> [{"label":"John Mark","value":"25"},{"label":"Sandra Friday","value":"12"},{"label":"Kelvin Russel","value":"4"}]

Mi pregunta ahora es, ¿cómo puedo mostrar el código php que muestra toda la matriz de nombres (etiqueta) en las etiquetas: sección

 labels: ['John Mark', 'Sandra Friday', 'Kelvin Russel'], //php code to display data

y también muestra el código php que muestra los valores en la sección de datos

 data: [25, 12, 4], //php code to display data
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Entonces, PHP es una tecnología del lado del servidor back-end, JS en este contexto es un contexto solo del lado del cliente. PHP le permitirá imprimir estos datos codificados en json en un bloque de script que le permitirá asignar estos datos a una variable JS.

Alternativamente, podría usar una cookie para almacenar estos datos y leerlos desde allí.

about 4 years ago · Juan Pablo Isaza Report

0

Debe proporcionar las etiquetas y los datos por separado. Podrías crear dos variables en tu ciclo para esto:

 $chatLabels = []; $chatData = []; while ($userchat= mysqli_fetch_array($rscht)) { $chatLabels[] = $userchat['name']; $chatData[] = $userchat['times']; } $chatLabelsJson = json_encode($chatLabels); // ["John Mark","Sandra Friday","Kelvin Russel"] $chatDataJson = json_encode($chatData); //["25","12","4"]

Alternativamente, podría usar array_column para extraer los datos de su matriz $chatstack existente:

 $chatLabels = array_column($chatstack, 'label'); $chatData = array_column($chatstack, 'value'); $chatLabelsJson = json_encode($chatLabels); // ["John Mark","Sandra Friday","Kelvin Russel"] $chatDataJson = json_encode($chatData); //["25","12","4"]
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!