根据javascript中数据库表中的行数绘制点

时间:2018-05-30 11:46:09

标签: javascript php mysql

我正在尝试在画布上画点。应该在我的画布上绘制的点数将基于我的数据库表上的行数,该行被命名为sample。我的问题是我没有得到任何输出

function draw()
        {
          canvas = document.getElementById('canvas');
          ctx = canvas.getContext('2d');
          ctx.fillStyle = "black";

          <?php
          $conn = new mysqli("localhost", "root", "","login");
          if ($conn -> connect_error) {
            die($conn -> connect_error);
          }

          $query = "SELECT COUNT(1) FROM sample";
          $result = mysqli_query($conn, $query);

          ?>

          var val = "<?php echo $result ?>";
          alert(val);

          for(var i = 0; i < val; i++)
          {
            var x = Math.random()*500;
            var y = Math.random()*300;
            ctx.beginPath();
            ctx.arc(x , y, 2, 0, 2 * Math.PI, false);
            ctx.fill();
            ctx.stroke();
            ctx.closePath();

          }

我已尝试放置alert()以查看我的查询是否已执行但仍未获得任何输出

1 个答案:

答案 0 :(得分:0)

你不能这样做

var val = "<?php echo $result ?>";

整个事情将被解释为一个简单的字符串,而不是php。但是你可以从上面的php代码块中回显一行javascript,如下所示:

<?php
$conn = new mysqli("localhost", "root", "","login");
if ($conn -> connect_error) {
    die($conn -> connect_error);
}

$query = "SELECT COUNT(1) FROM sample";
$result = mysqli_query($conn, $query);

$json = json_encode($result); // converts object to a json string, similar to Javascript's JSON.stringify method
echo "var val = JSON.parse(".$json.");";
?>

alert(val); //this should work!