Помощник
|
Переменная в запросе к БД |
toorr2p
|
Сообщение
#1
|
||
|
|
||
|
|||
Banderas |
19.8.2009, 11:25;
Ответить: Banderas
Сообщение
#2
|
|
Попробуй взять '$sql_tabl' в двойные кавычки "$sql_tabl"
|
|
|
psiallon |
19.8.2009, 12:10;
Ответить: psiallon
Сообщение
#3
|
|
[php]$result = mysql_query ("SELECT * FROM {$sql_tabl} WHERE id='$id'",$db);[/php]
Там вообще никаких кавычек не должно быть! |
|
|
ilyazh |
19.8.2009, 12:23;
Ответить: ilyazh
Сообщение
#4
|
|
psiallon, Почему? Можно без проблем записать в виде '$sql_table' и будет работать. =)
|
|
|
НЕПЛОХОЙ |
19.8.2009, 12:27;
Ответить: НЕПЛОХОЙ
Сообщение
#5
|
|
[php]$result = mysql_query ("SELECT * FROM ".$sql_tabl." WHERE id='".$id."'",$db);[/php]
|
|
|
toorr2p
|
Сообщение
#6
|
|
Спасибо большое!!!
написал вот так: if(isset($_GET['article'])){$sql_tabl='article';} if(isset ($_GET['news'])){$sql_tabl='news';} if(isset ($_GET['grafic'])){$sql_tabl='grafic';} if(isset ($_GET['download'])){$sql_tabl='download';} if(isset ($_GET['lesson'])){$sql_tabl='lesson';} $result = mysql_query ("SELECT * FROM ".$sql_tabl." WHERE id='$id'",$db); $array_k_d = mysql_fetch_array ($result); Все работает отлично!!! И так мы сократили обьем кода с: if(isset($_GET['article'])){$result = mysql_query ("SELECT meta_k,meta_d FROM article WHERE id='$id'",$db);} if(isset ($_GET['news'])){$result = mysql_query ("SELECT meta_k,meta_d FROM news WHERE id='$id'",$db);} if(isset ($_GET['grafic'])){$result = mysql_query ("SELECT meta_k,meta_d FROM grafic WHERE id='$id'",$db);} if(isset ($_GET['download'])){$result = mysql_query ("SELECT meta_k,meta_d FROM download WHERE id='$id'",$db);} if(isset ($_GET['lesson'])){$result = mysql_query ("SELECT meta_k,meta_d FROM lesson WHERE id='$id'",$db);} $array_k_d = mysql_fetch_array ($result); до: if(isset($_GET['article'])){$sql_tabl='article';} if(isset ($_GET['news'])){$sql_tabl='news';} if(isset ($_GET['grafic'])){$sql_tabl='grafic';} if(isset ($_GET['download'])){$sql_tabl='download';} if(isset ($_GET['lesson'])){$sql_tabl='lesson';} $result = mysql_query ("SELECT * FROM ".$sql_tabl." WHERE id='$id'",$db); $array_k_d = mysql_fetch_array ($result); Всем спасибо |
|
|
ZiTosS |
19.8.2009, 13:19;
Ответить: ZiTosS
Сообщение
#7
|
|
Вячеслав, учимся оформлять код(читаем тему подсветка кода)
Вообще то что находится в PHP между " и " обычно называется строкой(за исключением ключей в массивах и доступов к состояниям объекта). И то что ты спрашиваешь называется обычной конкатенацией строк. Все пишут на свой вкус. PHP запросто понимает все варианты: [php]"SELECT * FROM {$sql_tabl} WHERE id={$id}" # обычно тоже так пишу "SELECT * FROM $sql_tabl WHERE id=$id" "SELECT * FROM ". $sql_tabl ." WHERE id=". $id 'SELECT * FROM '. $sql_tabl .' WHERE id='. $id[/php] Чем же хорош первый вариант: 1) Удобочитаемость кода 2) Запросто можно вставить $array['key'] вместо $array[key] - экономится время на обращение к константной области. |
|
|
psiallon |
19.8.2009, 13:25;
Ответить: psiallon
Сообщение
#8
|
|
|
|
|
ilyazh |
19.8.2009, 13:49;
Ответить: ilyazh
Сообщение
#9
|
|
я всю жизнь использую такой апостроф и всё работает нормально. Как сказал Зитос - php работает со всякими апострофами.
|
|
|
psiallon |
19.8.2009, 14:23;
Ответить: psiallon
Сообщение
#10
|
|
При чем тут PHP , я говорю про SQL запрос, у Вячеслава была ошибка в том, что переменная (имя таблицы) была заключена в прямой апостроф, а в sql для названия таблиц нужно либо опускать апострафы вообще, либо использовать обратные! И вы в своем первом посте, опять-же советуете человеку допустить ошибку, которую я ему посоветовал исправить!.. И с конкатенацией строк у него проблем не было, там было все сделано верно!
|
|
|
|
Текстовая версия | Сейчас: 29.3.2024, 0:45 |