PHP中的未定义索引和MYSQL中的数据类型POINT

时间:2012-06-29 16:25:48

标签: php mysql

我是新手在MYSQL中使用数据类型POINT所以我想在PHP中测试输出到表但我得到错误“Undefined index”。如何修复此错误并在表格中显示点?

错误消息 注意:未定义的索引:第23行的C:\ xampp \ htdocs \ view.php中的my_point

(这些点没有显示在表格中。我该如何解决这个问题?)

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);
            ?> 

3 个答案:

答案 0 :(得分:4)

您需要两个计算列的列别名:

$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存在,与{{1}}列表中显示的完全相同。

答案 1 :(得分:1)

使用AS对来自X()Y()的返回值进行别名,如下所示:

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,了解如何根据您的查询动态生成列名。

答案 2 :(得分:1)

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