[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Mysql и Openlayers
dimmer
Полный текст вопроса тут. Вкратце, есть база poi в ней таблица convenience со столбцами
lat lon title description icon iconSize iconOffset, нужно подгружать из нее данные.
<?php

$bbx = $_GET["bbox"] ;

$array = explode(",",$bbx);

$ble = $array[0] ;
$bbo = $array[1] ;
$bri = $array[2] ;
$bto = $array[3] ;

// include("dbconnect.php");
$con = mysql_connect("localhost","poi","1");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

$ergebnis = mysql_query("SELECT lat, lon, title, description, icon, iconSize, iconOffset FROM poi
AND lat BETWEEN
$bbo AND $bto
AND lon BETWEEN $ble AND $bri")
OR die("Error: $abfrage <br>".mysql_error()
);


$header = "lat\tlon\ttitle\tdescription\ticon\ticonSize\ticonOffset\n" ;

echo $header ;

while($row = mysql_fetch_object($ergebnis))
{
$daten = $row->lat."\t".$row->lon."\t".$row->title."\t".$row->description."\t".$row->icon."\t".$row->iconSize."\t".$row->iconOffset"\n";
echo $daten ;
}

?>

Денвер не выдает никаких ошибок, но и точки на карте не появляются.



Спустя 22 минуты, 28 секунд (16.12.2011 - 11:37) Placido написал(а):
Не знаю, почему нет ошибок, но запрос неверный - отсутствует WHERE
...FROM poi  
WHERE lat BETWEEN $bbo AND $bto
AND lon BETWEEN $ble AND $bri

Спустя 1 час, 50 минут, 11 секунд (16.12.2011 - 13:27) dimmer написал(а):
Заменил AND на WHERE, но результат тот же. Может я как-то не так подключаюсь к базе?

Спустя 3 часа, 1 минута (16.12.2011 - 16:28) Placido написал(а):
А где mysql_select_db()?

Спустя 2 часа, 22 минуты, 59 секунд (16.12.2011 - 18:51) dimmer написал(а):
Изменил на такой вариант, результат прежний.

<?php

$bbx = $_GET["bbox"] ;

$array = explode(",",$bbx);

$ble = $array[0] ;
$bbo = $array[1] ;
$bri = $array[2] ;
$bto = $array[3] ;

$link = mysql_connect('localhost', 'poi', '1');
if (!$link) {
die('Не удалось соединиться : ' . mysql_error());
}
$db_selected = mysql_select_db('poi', $link);
if (!$db_selected) {
die ('Не удалось выбрать базу poi: ' . mysql_error());
}


$ergebnis = mysql_query("SELECT lat, lon, title, description, icon, iconSize, iconOffset FROM poi
WHERE lat BETWEEN
$bbo AND $bto
AND lon BETWEEN $ble AND $bri")
OR die("Error: $abfrage <br>".mysql_error()
);


$header = "lat\tlon\ttitle\tdescription\ticon\ticonSize\ticonOffset\n" ;

echo $header ;

while($row = mysql_fetch_object($ergebnis))
{
$daten = $row->lat."\t".$row->lon."\t".$row->title."\t".$row->description."\t".$row->icon."\t".$row->iconSize."\t".$row->iconOffset"\n";
echo $daten ;
}

?>

Еще подумал, влияет ли на выборку тип поля? Например, если у координат тип поля TEXT.

Спустя 9 минут, 51 секунда (16.12.2011 - 19:01) Игорь_Vasinsky написал(а):
да. влияет.

Спустя 2 часа, 52 минуты, 12 секунд (16.12.2011 - 21:53) Placido написал(а):
Если поле не числовое, то значения нужно брать в апострофы.
"SELECT lat, lon, title, description, icon, iconSize, iconOffset FROM poi
WHERE lat BETWEEN '
$bbo' AND '$bto'
AND lon BETWEEN '
$ble' AND '$bri'")

Спустя 1 час, 49 минут, 44 секунды (16.12.2011 - 23:43) dimmer написал(а):
Placido, огромное спасибо!

Не прошло и суток, как я нашел как посмотреть ошибки :D
http://127.0.0.1/base/dbcsv.php?bbox=21.82...3,55.4242437506

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in Z:\home\localhost\www\base\dbcsv.php on line 40

Матюгалось на строчку

$daten = $row->lat."\t".$row->lon."\t".$row->title."\t".$row->description."\t".$row->icon."\t".$row->iconSize."\t".$row->iconOffset"\n";

iconOffset"\n"; заменил на iconOffset."\n";

Потом
 Error:
Table 'poi.poi' doesn't exist

Заменил FROM poi на FROM convenience

Ура!!! Работает.
Осталось разобраться почему вместо русских букв квадраты.

Спустя 4 минуты, 12 секунд (16.12.2011 - 23:47) Игорь_Vasinsky написал(а):
Цитата
то значения нужно брать в апострофы.

в одинарные кавычки))

в апострофа беруться названия таблиц, полей

Спустя 1 минута, 6 секунд (16.12.2011 - 23:49) Игорь_Vasinsky написал(а):
Цитата
$link = mysql_connect('localhost', 'poi', '1');
if (!$link) {
    die('Не удалось соединиться : ' . mysql_error());
}


$link = mysql_connect('localhost', 'poi', '1');
if (!$link) {
die('Не удалось соединиться : ' . mysql_error());
}
mysql_query("SET NAMES 'ut8'");

Спустя 11 минут, 41 секунда (17.12.2011 - 00:00) dimmer написал(а):
Игорь_Vasinsky спасибо.

Рабочий вариант, вдруг кому пригодится.

<?php

$bbx = $_GET["bbox"] ;

$array = explode(",",$bbx);

$ble = $array[0] ;
$bbo = $array[1] ;
$bri = $array[2] ;
$bto = $array[3] ;

$link = mysql_connect('localhost', 'poi', '1');
if (!$link) {
die('Не удалось соединиться : ' . mysql_error());
}
$db_selected = mysql_select_db('poi', $link);
if (!$db_selected) {
die ('Не удалось выбрать базу poi: ' . mysql_error());
}
mysql_query("SET NAMES 'ut8'");

$ergebnis = mysql_query("SELECT lat, lon, title, description, icon, iconSize, iconOffset FROM convenience
WHERE lat BETWEEN '
$bbo' AND '$bto'
AND lon BETWEEN '
$ble' AND '$bri'")
OR die("Error: $abfrage <br>".mysql_error()
);


$header = "lat\tlon\ttitle\tdescription\ticon\ticonSize\ticonOffset\n" ;

echo $header ;

while($row = mysql_fetch_object($ergebnis))
{
$daten = $row->lat."\t".$row->lon."\t".$row->title."\t".$row->description."\t".$row->icon."\t".$row->iconSize."\t".$row->iconOffset."\n";
echo $daten ;
}

?>

Спустя 6 минут, 9 секунд (17.12.2011 - 00:06) Игорь_Vasinsky написал(а):
блин. там же опечатка)) utf8 должно быть ))) чудо

Спустя 8 минут, 55 секунд (17.12.2011 - 00:15) dimmer написал(а):
На самом деле все решилось сменой кодировки в Опере с UTF-8 на Кириллица/Автоопределние smile.gif

Спустя 1 минута, 29 секунд (17.12.2011 - 00:17) Игорь_Vasinsky написал(а):
жаль.. я уж в чудо поверил...

Спустя 2 часа, 18 минут, 16 секунд (17.12.2011 - 02:35) Placido написал(а):
Цитата (Игорь_Vasinsky @ 16.12.2011 - 22:47)
в одинарные кавычки))

в апострофа беруться названия таблиц, полей

"Не следует путать два таких разных знака, как апостроф и обратный апостроф (или знак побочного ударения). Апостроф (') находится рядом с клавишей <Enter>, а обратный апостроф (`) спрятался под клавишей <Esc>"
(С) из учебника по MS Word 2003
ТЫЦ

Спустя 3 минуты, 22 секунды (17.12.2011 - 02:38) Игорь_Vasinsky написал(а):
ааа... для нас это - одинарная кавычка tongue.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.