Estoy en una clase que se llama programación de base de datos. Tenemos un conjunto de datos y y puesto en nuestros servidores. Ahora tengo que usar un plugin de jquery para ayudar a visualizar los datos. Estoy usando el Gráfico Nos plugin y tratando de usar la «Rellenar» opción.

Mi profesor me ayudó a crear esta función:

<?php
include 'connect.php';
$country_query = "SELECT DISTINCT Country FROM FemaleMaleRatioNew";
$result = mysqli_query($sql_link, $country_query);
$new_row = array();
while ($row = mysqli_fetch_assoc($result)) {
    $country = $row['Country']; 
    $query = sprintf("SELECT Year, Value FROM FemaleMaleRatioNew WHERE Country =     '%s'", $country);  
    $country_result = mysqli_query($sql_link, $query);
    while ($country_row = mysqli_fetch_assoc($country_result) ) {
        $new_row[$country][] = array('year' => $country_row['Year'],
                            'value'=> $country_row['Value']
                            );

    }
}   

//print_r($new_row);


?>

la print_r($new_row); sólo está ahí para asegurarse de que funciona y que no, imprime la matriz cuando se activa.

Entonces él me guió para crear la tabla como esta:

    <body>  

    <table id="demo">

    <?php  foreach($new_row as $row):?> 




            <tr>
                <td><?=$row['year'];?></td>
                <td><?=$row['country'];?></td>
            </tr>
    <?php endforeach;?>



    </table>

<script type="text/javascript">
$(document).ready(function() {

//Here we're "graphing up" only the cells with the "data" class
$('#demo td').graphup({
    //Define any options here
    colorMap: 'heatmap',
    painter: 'fill',
    //...
});

});
</script>
</body>

¿Qué más tengo que hacer para obtener la tabla para que funcione? Me parece que no puede averiguar. Todo lo que hace es salir en blanco.

Lo siento si esta pregunta no está formulada correctamente o si no he sido claro en algo, por favor hágamelo saber.

  • Puede que nos muestran el resultado de print_r($new_row)?
  • El formato es realmente apagado. ¿Te importaría volver a formatear el PHP de acuerdo con esto: framework.zend.com/manual/1.12/en/… y acaba de eliminar líneas en blanco en el código HTML.
InformationsquelleAutor clo3o5 | 2013-04-16

2 Comentarios

  1. 4

    Tiene varias filas para cada país en su $new_row variable. Usted tiene que iterar sobre los países de primera y luego a través de las filas individuales de datos:

    <?php  foreach($new_row as $country => $rows): ?>
      <?php  foreach($rows as $row): ?>
            <tr>
                <td><?=$country;?></td>
                <td><?=$row['Year'];?></td>
                <td><?=$row['Value'];?></td>
            </tr>
      <?php endforeach;?>
    <?php endforeach;?>

    También tenga en cuenta que usted necesita colon ‘:’ no punto y coma ‘;’ después de la foreach declaración. Esta sintaxis (que es menos conocido) se describe a continuación: http://php.net/manual/en/control-structures.alternative-syntax.php

    Si desea mostrar algún tipo de agregado (por ejemplo, suma) por país y se quiere calcular en PHP (como opuesto a MySQL) usted puede hacer esto de esta manera:

    <?php foreach($new_row as $country => $rows): 
      $sum = 0;
      foreach($rows as $row): 
        $sum += $row['Value'];
      endforeach;
    ?>
            <tr>
                <td><?=$country;?></td>
                <td><?=$sum;?></td>
            </tr>
    <?php endforeach;?>
    • esto funciona, pero no mostrar la información en la tabla de cómo lo quiero….sólo muestra todos los países de la tabla y, a continuación, las listas de números de 1-119
    • Usted no ha dicho cómo usted quiere que la información que se mostrará. ¿Quieres que la suma de los valores por cada país, promedio, producto, desviación estándar? Usted debe ser capaz de calcular todas estas cosas mediante el ajuste de bucle interno.
    • Yo sólo quiero que los valores que se muestran para cada año. No necesito la suma de la media o cualquier otro cálculo de los valores…sólo los valores que se muestran y se añadirán a la gráfica con el GraphUP Plugin de Jquery
    • i49.tinypic.com/2h4ezag.png que es una foto de mi código para un mejor entendimiento en lo que estoy mirando
    • Gracias!!! Esto ayudó un montón!!!
  2. 1

    Usted debe utilizar una sola Unió a la consulta para hacer esto, pero usted puede no haber conseguido que en clase todavía. Ya que es la tarea, no voy a darle el plano contestar, pero aquí está el pseudo-código:

    $countries = SELECT DISTINCT Country FROM YourTable;
    while($country_row = fetch_row($countries)) {
       echo $country_row['Country'];
       echo <table>;
       $status = SELECT Year, Value FROM YourTable WHERE Country=$country_row['Country'];
       while($stats_row = fetch_row($status) {
            echo <tr><td>$stats_row['Year']</td><td>$stats_row['Value']}</td>
       }
       echo </table>
    }
    • este vendría a sustituir a la primera consulta que he publicado?
    • se llama pseudo-código para una razón.
    • Sí, pero es una mierda de leer esta ~.~
    • irrelevante: esta es la tarea. no te acaba de regalar la respuesta. el estudiante debe PENSAR por sí mismos.
    • No entiendo esto? Sería este reemplazar mi primera consulta o puedo usar este tan bien como el que ya estoy utilizando?
    • no, sólo se muestra el flujo básico de lo que el código debe hacer. usted todavía tiene que proporcionar las consultas y el código real.
    • $países = SELECT DISTINCT País DE YourTable; while($country_row = fetch_row($países)) { echo $country_row[‘Pais’]; llegué a esta parte a trabajar, pero la parte de abajo me da un error y no carga
    • Gracias Marc, enfoque interesante. Yo suelo hacer la consulta de primera, a continuación, me bucle a través de mi matrices. La razón por qué usted debe combinar las dos cosas al mismo tiempo?

Dejar respuesta

Please enter your comment!
Please enter your name here