Ankündigung

Einklappen
Keine Ankündigung bisher.

Mysql Array in ein Array Schreiben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mysql Array in ein Array Schreiben

    Hallo liebe gemeinschaft was mache ich falsch

    PHP-Code:
    $res=mysqli_query($db_link,"select * from chart01");
    while(
    $row=mysqli_fetch_array($res))
    {

    $test['x']=$row["time"];
    $test['y']=$row["Malware"];

    //$count=$count+1;

    }

     
    $dataPoints = array(
        array(
    $test['x'] , $test['y']));
     
    print_r($dataPoints);    
    Ausgabe Print                 Array ( [0] => Array ( [0] => 1694588623 [1] => ) )
    /*
         $dataPoints = array(
            array("x" => 946665000000, "y" => 3289000),
            array("x" => 978287400000, "y" => 3830000),
            array("x" => 1009823400000, "y" => 2009000),
            array("x" => 1041359400000, "y" => 2840000),
            array("x" => 1072895400000, "y" => 2396000),
            array("x" => 1104517800000, "y" => 1613000),
            array("x" => 1136053800000, "y" => 1821000),
            array("x" => 1167589800000, "y" => 2000000),
            array("x" => 1199125800000, "y" => 1397000),
            array("x" => 1230748200000, "y" => 2506000),
            array("x" => 1262284200000, "y" => 6704000),
            array("x" => 1293820200000, "y" => 5704000),
            array("x" => 1325356200000, "y" => 4009000),
            array("x" => 1356978600000, "y" => 3026000),
            array("x" => 1388514600000, "y" => 2394000),
            array("x" => 1420050600000, "y" => 1872000),
            array("x" => 1451586600000, "y" => 2140000)
         ); 
    unten so sollte das Array aussehen

    doch oben bekomme ich immer nur 1 eintrag zu sehen
    es geht darum ein Diagram mit Zeit angabe zu erstellen


  • #2
    "select * " wird nicht empfohlen, benutze nur die Feldname die Du in dieser Abfrage wirklich nur brauchst.

    Mit
    PHP-Code:
    $test['x']=$row["time"];
    $test['y']=$row["Malware"]; 
    überschreibst Du Dir bei jedem Durchlauf die vorherigen Werte. Du möchtest aber jeweils neue Elemente hinzufügen.

    Kommentar


    • #3
      Ich habe nur 3 Felder ID, time und Malware

      müste ich da mit nem count arbeiten

      Kommentar


      • #4
        Dann trage auch diese drei Feldnamen ein.

        Kommentar


        • #5
          Für das Diagram brauche ich doch nur Time und Malware nur die Ausgabe ich dan Brauche müste die Unten Sein so wie in dem Beispiel
          PHP-Code:

           $db_link= mysql_DB($db_host,$db_user,$db_pass,$db_name) ;
          //mysqli_select_db($db_link,"chart_db");

              $test = array();

          $res=mysqli_query($db_link,"select `time`, `Malware` from chart01");
          while($row=mysqli_fetch_array($res))
          {
          $test['x']=$row["time"];
          $test['y']=$row["Malware"];
          }

           print_r($test);  

          /* So wie Hier müste die Ausgabe aus der Datenbank kommen.
               $dataPoints = array(
                  array("x" => 946665000000, "y" => 3289000),
                  array("x" => 978287400000, "y" => 3830000),
                  array("x" => 1009823400000, "y" => 2009000),
                  array("x" => 1041359400000, "y" => 2840000),
                  array("x" => 1072895400000, "y" => 2396000),
                  array("x" => 1104517800000, "y" => 1613000),
                  array("x" => 1136053800000, "y" => 1821000),
                  array("x" => 1167589800000, "y" => 2000000),
                  array("x" => 1199125800000, "y" => 1397000),
                  array("x" => 1230748200000, "y" => 2506000),
                  array("x" => 1262284200000, "y" => 6704000),
                  array("x" => 1293820200000, "y" => 5704000),
                  array("x" => 1325356200000, "y" => 4009000),
                  array("x" => 1356978600000, "y" => 3026000),
                  array("x" => 1388514600000, "y" => 2394000),
                  array("x" => 1420050600000, "y" => 1872000),
                  array("x" => 1451586600000, "y" => 2140000)
               );
           */    
              ?>
              <!DOCTYPE HTML>
              <html>
              <head>
              <script>
              window.onload = function () {

              var chart = new CanvasJS.Chart("chartContainer", {
                  animationEnabled: true,
                  title:{
                      text: "Company Revenue by Year"
                  },
                  axisY: {
                      title: "Revenue in USD",
                      valueFormatString: "#0,,.",
                      suffix: "mn",
                      prefix: "$"
                  },
                  data: [{
                      type: "spline",
                      markerSize: 5,
                      xValueFormatString: "YYYY",
                      yValueFormatString: "$#,##0.##",
                      xValueType: "dateTime",
                      dataPoints: <?php echo json_encode($dataPointsJSON_NUMERIC_CHECK); ?>
                  }]
              });

              chart.render();

              }
              </script>
              </head>
              <body>
              <div id="chartContainer" style="height: 370px; width: 100%;"></div>
              <script src="https://cdn.canvasjs.com/canvasjs.min.js"></script>
              </body>
              </html>

          Kommentar


          • #6
            Ja, die beiden Feldnamen reichen natürlich.

            Tausche mal
            PHP-Code:
            $test['x']=$row["time"];
            $test['y']=$row["Malware"]; 
            gegen
            PHP-Code:
            array_push($test, array('x' => $row["time"], 'y' => $row["Malware"])); 
            Sollte zielführend(er) sein.

            Kommentar

            Lädt...
            X