2012-06-29 43 views
2

我是新來的在MYSQL中使用數據類型POINT,所以我想用PHP測試輸出到表中,但是我收到錯誤「Undefined index」。我如何解決這個錯誤並在表格中顯示點?PHP中的未定義索引和MYSQL中的數據類型POINT

錯誤消息 注意:未定義指數:my_point在C:\ XAMPP \ htdocs中上線\ view.php 23

(該點沒有在表中顯示我怎樣才能解決。此?)

MySQL表

爲表

/*表結構highcharts_php */

  CREATE TABLE `highcharts_php` (
       `id` int(11) NOT NULL AUTO_INCREMENT, 
       `run_name` varchar(150) DEFAULT NULL, 
       `my_point` POINT DEFAULT NULL, 
       `cur_timestamp` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
       PRIMARY KEY (`id`) 

      ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1; 
       SET time_zone='+00:00'; 
      /*Data for the table `highcharts_php` */ 

      insert into highcharts_php (`id`,`run_name`,`cur_timestamp`,`my_point`) values (1, 'SSTP Keystone COOPER','2012-06-28 00:00:01', GeomFromText(' POINT(0.6 70.18) ')) 

* PHP代碼 *

  <?php 
      $con = mysql_connect("localhost","root","xxxxxxxx"); 
      if (!$con) 
       { 
       die('Could not connect: ' . mysql_error()); 
       } 

      mysql_select_db("graph", $con); 
      /*$result = mysql_query("SELECT * FROM highcharts_php");*/ 
      $result = mysql_query("SELECT run_name,cur_timestamp, x(my_point), y(my_point) FROM highcharts_php LIMIT 0 , 30")or die 
      (mysql_error()); 
      echo "<table border='1'> 
      <tr> 
      <th>run_name</th> 
      <th>my_point</th> 
      <th>cur_timestamp</th> 
      </tr>"; 

      while($row = mysql_fetch_array($result)) 
       { 
       echo "<tr>"; 
       echo "<td>" . $row['run_name'] . "</td>"; 
       echo "<td>" . $row['my_point'] . "</td>"; 
       echo "<td>" . $row['cur_timestamp'] . "</td>"; 
       echo "</tr>"; 
       } 
      echo "</table>"; 

      mysql_close($con); 
      ?> 

回答

5

你需要爲你的兩個計算列列別名:

$result = mysql_query(" 
    SELECT 
    run_name, 
    cur_timestamp, 
    /* Column aliases via AS */ 
    x(my_point) AS my_point_x, 
    y(my_point) AS my_point_y 
    FROM highcharts_php LIMIT 0 , 30") or die(); 

訪問他們爲$row['my_point_x'], $row['my_point_y']

沒有列別名,它們在您的$row中作爲$row['x(my_point)'], $row['y (my_point)']存在,正如它們出現在您的SELECT列表中一樣。

+0

謝謝你的工作! – mgrobins

1

別名從X()Y()使用AS,像這樣的返回值:

X(my_point) AS x_value, Y(my_point) AS y_value 

然後訪問它們在PHP中爲:

$row['x_value'] 
$row['y_value'] 

否則,你將有訪問柱:

$row['X(my_point)'] 

或者類似的東西 - 見the example的文檔,看看如何列名根據您的查詢是動態生成的。

+0

感謝您的反饋! – mgrobins

1
SELECT run_name, 
cur_timestamp, 
CONCAT(x(my_point), ' ', y(my_point)) as my_point 
FROM highcharts_php LIMIT 0 , 30 
+0

感謝您的反饋! – mgrobins