2014-09-25 29 views
-1

更新 這裏是我正在處理的代碼。我的代碼是使用PHP的Javascript。我是 ,讀取X,Y座標從MySQL數據庫中,然後能夠在 繪製矩形給出的位置。通過讀取X,Y座標畫平方

我在我的表座標中有3個字段:coordinate_id,x_coord,y_coord。它有5-6個 行。

在我的代碼中,我先用一個方塊進行測試,它可以工作。現在,我想通過使用多維數組遍歷 數據庫,以便繪製所有的矩形。

非常感謝!

的Javascript PHP:

<div class="section_a" > 
       <p>Section A</p> 

       <canvas id="imageView" width="600" height="500"></canvas> 

       <script type="text/javascript"> 
        var ctx, cv; 
        cv = document.getElementById('imageView'); 
        ctx = cv.getContext('2d'); 
        ctx.lineWidth = 5; 
        ctx.strokeStyle = '#000000'; 

        <?php 
       $select_coordinate_query = "SELECT * FROM coordinates"; 
         $result = mysqli_query($conn,$select_coordinate_query); 

         //see if query is good 
         if($result === false) { 
         die(mysqli_error()); 
         } 

         //array that will have number of desks in map area 


         while($row = mysqli_fetch_assoc($result)){ 

          //get desk array count 
          //THIS IS WHERE I NEED HELP** 
          $desk = array(array("x" => $row['x_coord']), 
             array("y" => $row['y_coord']) 
             ); 

       //x, y coordinates 
          $x_pos = $desk['x']; 
          $y_pos = $desk['y']; 
          //x,y width and height 
          $x_size = $x_pos + 40; 
          $y_size = $y_pos + 10;  
        //HELP** 
        ?> 
        ctx.strokeRect(<?php echo "$desk[x]";?>, <?php echo "$desk[y]";?>,100 , 100);     
        <?  
         } //end while loop 
        ?> 
        </script> 

      </div> <!-- end div section_a --> 
+2

所以..你尋求幫助如何來查詢mysql?如何從MySQL獲取數據到PHP?如何讓PHP來繪製你的圖表?你應該退後一步,看看更大的圖片 - 無所謂** WHERE **座標來自,他們只是座標,你需要編寫可以處理它們的繪圖代碼。數據庫本身並不在乎他們是座標。他們只是數字。 – 2014-09-25 14:23:29

+0

也許嘗試使用svg來繪製您的廣場。您需要某種公式來計算每個方塊的大小,儘管 – Rasclatt 2014-09-25 14:25:59

+0

對於遲到的回覆感到抱歉。不,我知道如何查詢和全部。我剛剛失去了。我發佈了我的代碼,現在我試圖使用多維數組來讀取表中的每個座標 – user3042226 2014-09-30 01:33:56

回答

0

你應該看看HTML5 Canvas

下面是一個例子:

var c = document.getElementById("container"); 
 
var ctx = c.getContext("2d"); 
 

 

 
// size of a "desk" 
 
var desk = { 
 
    width: 40, 
 
    height: 15 
 

 
}; 
 

 
/* simple desk example */ 
 
// coordinates of your desk 
 
var coords = { 
 
    x: 20, 
 
    y: 20 
 
}; 
 

 
ctx.rect(coords.x, coords.y, desk.width, desk.height); 
 
ctx.stroke(); 
 

 

 
/* multiple desks example - in blue */ 
 

 
// coordinates of each desk 
 
var desks = [ 
 
    { x: 20, y: 100 }, 
 
    { x: 130, y: 115 }, 
 
    { x: 200, y: 130 } 
 
]; 
 

 
ctx.beginPath(); 
 
ctx.lineWidth = "2"; 
 
ctx.strokeStyle = "blue"; 
 
for (var i = 0; i < desks.length; i++) { 
 
    ctx.rect(desks[i].x, desks[i].y, desk.width, desk.height); 
 
    ctx.stroke(); 
 
}
#container { 
 
    border:1px solid #d3d3d3; 
 
}
<canvas id="container" width="300" height="150"></canvas>

+0

downvoted的人是否會善意解釋原因? :/ – pistou 2014-09-25 17:34:27

+0

我沒有downvote你的答案,但OP「出現」要求(1)MySQL訪問代碼加(2)可視化代碼最好使用divs,但也可以使用畫布。我說「出現」,因爲OP主要談論關於數據庫訪問代碼,但他們的問題沒有MySQL標籤。一個純粹的猜測:downvoter希望你的答案還包括數據庫訪問代碼?無論如何,這裏是(IMHO)+1通過使用畫布回答問題的可視化一半來促進問題的原因。 – markE 2014-09-26 15:03:10

+0

謝謝我現在更新了內容並添加了一些代碼。我有問題循環與多維數組。提前致謝! – user3042226 2014-09-30 01:31:30