Не получается составить функцию!

Skoff

Новичок
Не получается составить функцию!

Всем привет, вот написанная функция:
function construction()
{
global $db_id;

$query = "select * from buildings where type = (select b1 from links where id=".$town[0].")";
$res = mysql_query($query) or die(mysql_error());
$number = mysql_num_rows($res);
if ($number == 0) {
return "";
} else {
$constr_str = "";
while ($row=mysql_fetch_array($res)) {
$constr_str .= $row['construction'];
}
}
return $constr_str;
}

Выводит такую лабуду: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1"

если меняю переменную $town[0] на значение, то все идет гладко, в чем проблема? помогите пожалуйста!
 

Фанат

oncle terrible
Команда форума
не подскажешь, что значит строчка global $db_id;?
для чего она?
 

pilot911

Новичок
сделай echo $query; и посмотри, что за запрос у тебя отправляется в БД
 

Skoff

Новичок
*****
global $db_id; - это коннект к базе данных
pilot911
в самой странице написать? или в функцию вмонтировать?
 

pilot911

Новичок
function construction()
{
global $db_id;

$query = "select * from buildings where type = (select b1 from links where id=".$town[0].")";

и тут следующей строчкой

echo $query;
 

Skoff

Новичок
угу написал уже, вот что выдал:
select * from buildings where type = (select b1 from links where id=)
 

Фанат

oncle terrible
Команда форума
Skoff, эта строчка говорит скрипту соединиться с базой данных?
 

Skoff

Новичок
а как она может не знать, если во всех функциях, которые идут выше употребляется данная переменная? а вот и сама функция $town
function town($id)
{
global $db_id;

$query="select * from towns where id=".$id;
$result=mysql_query($query, $db_id);
if ($result)
{
$row=mysql_fetch_row($result);
$row[2]=stripslashes($row[2]); $row[14]=stripslashes($row[14]);
return $row;
} else return 0;
}


*****
да, через нее он соединяется с базой
 

Фанат

oncle terrible
Команда форума
при чем здесь функция town? Мы же говорили о переменной, а не о функции?
 

Skoff

Новичок
$db_id - а это нафиг тебе? функция db_id соединяется с базой.

Тогда задам вопрос по другому: как мне вывести значение функции town в свой запрос?
 

Фанат

oncle terrible
Команда форума
отвечать здесь будешь ты.
потому что вообще ничего не знаешь.

-~{}~ 30.01.09 14:11:

у тебя действительно еть функция db_id(), или это очередная фантазия?

-~{}~ 30.01.09 14:13:

как мне вывести значение функции town в свой запрос?
для начала научиться не путать ФУНКЦИИ и ПЕРЕМЕННЫЕ.
затем научиться присваивать переменной результат работы функции.
после этого можно подставить полученную переменную в запрос.
 

Skoff

Новичок
Автор оригинала: *****
отвечать здесь будешь ты.
потому что вообще ничего не знаешь.

-~{}~ 30.01.09 14:11:

у тебя действительно еть функция db_id(), или это очередная фантазия?
переменная, ошибся:)
$db_id = mysql_connect($db_host, $db_user, $db_pass)
or die("Could not connect to DB.");
mysql_select_db($db_name, $db_id)
or die("Database not found.");

Ребят, я прошу помочь, а не критиковать
 

Фанат

oncle terrible
Команда форума
тебя не то что критиковать тебя драть надо, розгами.

хорошо, $db_id - переменная.
а ЗАЧЕМ в функции написано global $db_id;?
 

Фанат

oncle terrible
Команда форума
ну то есть, если для $db_id надо делать какие-то движения, чтобы она была видна внутри функции, значит, не все так просто?

ну и к какому выводу ты пришел по поводу функции town и того, что, что она возвращает?
 
Сверху