【问题标题】:How to create array using javascript with a database mysql?如何使用带有数据库 mysql 的 javascript 创建数组?
【发布时间】:2013-04-05 08:27:51
【问题描述】:

任何人都可以帮助我解决这个问题提前谢谢这是一个谷歌图表我需要动态更改每天的任务和小时数,所以基本上需要一个可以连接到数据库并将它们放在数组中的数据库怎么能我这样做。

 <html>
      <head>
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
        <script type="text/javascript">
          google.load("visualization", "1", {packages:["corechart"]});
          google.setOnLoadCallback(drawChart);
          function drawChart() {
            var data = google.visualization.arrayToDataTable([
              ['Task', 'Hours per Day'],
              ['Work',     11],
              ['Eat',      2],
              ['Commute',  2],
              ['Watch TV', 2],
              ['Sleep',    7]
            ]);

            var options = {
              title: 'My Daily Activities'
            };

            var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
            chart.draw(data, options);
          }
        </script>
      </head>
      <body>
        <div id="chart_div" style="width: 900px; height: 500px;"></div>
      </body>
    </html>

【问题讨论】:

  • php 在哪里?你需要php来连接mysql数据库
  • 我可以连接到数据库我只需要如何为javascript创建一个数组基本上我需要将此代码更改为动态: var data = google.visualization.arrayToDataTable([ ['Task', '每天的小时数'], ['工作', 11], ['吃', 2], ['通勤', 2], ['看电视', 2], ['睡眠', 7] ]);

标签: php javascript mysql database


【解决方案1】:

首先你需要设计一个数据库结构。例如:

** Activities ** 
| ID |   Task   | Hours  | 
| 1  |   Work   |   11   |
| 2  |   Eat    |   2    |
| 3  | Cummute  |   2    |
| 4  | Watch TV |   2    | 
| 5  |  Sleep   |   7    | 

现在您需要建立数据库连接。 (最简单的方法,还有更好的方法,这只是一个例子)

<?php
 $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
 if (!$link) {
     die('Not connected : ' . mysql_error());
 } 

 // make foo the current db
 $db_selected = mysql_select_db('your_db_name', $link);
 if (!$db_selected) {
     die ('Can\'t use database : ' . mysql_error());
 }
?>

您需要动态构建此代码:

   var data = google.visualization.arrayToDataTable([
      ['Task', 'Hours per Day'],
      ['Work',     11],
      ['Eat',      2],
      ['Commute',  2],
      ['Watch TV', 2],
      ['Sleep',    7]
    ]);

在这个例子中,标题是静态的

   var data = google.visualization.arrayToDataTable([
      ['Task', 'Hours per Day'],
      <?php
         $query = mysql_query("SELECT * FROM Activities");
         $count = mysql_row_count($query);
         $i = 0;
         $last = ',';
         while ($row = mysql_fetch_array($result)) {
          $i++;
          if($i == $count) { $last = ''; )
          echo "['". $row['Task'] .", ". $row['Hours'] ." '] " . $last
         }
       ?>
    ]);

【讨论】:

  • 不要使用mysql函数总是使用mysqli函数。
  • @SaurabhSinha 这就是为什么我在其中说“现在您需要建立数据库连接。(最简单的方法)”我并不是建议它是最好的方法。如果您想以最好的方式做到这一点,请使用 PDO...
  • 你不必有 $count = mysql_row_count($query);然后检查计数的 if 条件。 while 关键字只会对返回 true 的行运行。
  • if($i == $count) { $last = ','; ) 这一行会产生错误。为什么我们需要最后一个括号
  • 谢谢 Visser 我现在就试试你的代码。我稍后会发送反馈,并感谢所有有建议的人。
【解决方案2】:

尝试以下方法:

  1. 使用 mysqli_connect 建立数据库连接并查询数据库以获取结果集
  2. 如下分配PHP变量:

              ['Task', 'Hours per Day'],
              ['Work',     <?php echo $work; ?>],
              ['Eat',      <?php echo $eat; ?>],
              ['Commute',  <?php echo $commute; ?>],
              ['Watch TV', <?php echo $watchTv; ?>],
              ['Sleep',    <?php echo $sleep; ?>]
    

变量:

$work
$eat
$commute
$watchTv
$sleep

是 PHP 变量,其中包含来自 DB 的相应值

我希望这会有所帮助。

【讨论】:

  • @S.Visser:为什么不动态,请解释一下
  • 我需要动态的“任务”和“每天的小时数”,它涉及到任何人都可以更新代码的数据库。
  • 任务列表及其值都是动态的?
  • Saurabh,我他去运动一小时是什么?然后他需要编辑代码以将任务运动添加到其中。不是很动态。
  • 是的,例如,我添加了一个等于 Listening 的新“任务”和等于 3 的“小时”,并保存到数据库中,我该如何输出它。
猜你喜欢
  • 2022-12-07
  • 1970-01-01
  • 2020-11-07
  • 2016-12-12
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多