Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Задать имя таблицы в SELECT из переменной (https://javascript.ru/forum/server/36028-zadat-imya-tablicy-v-select-iz-peremennojj.html)

rudolfe 01.03.2013 17:18

Задать имя таблицы в SELECT из переменной
 
Привет!Такая вот проблема:
Код:

$expName='chtoto';
$res=mysql_query("SELECT * FROM '".$expName."' WHERE userid = '1'");

Ошибка в том что переменная не срабатывает как имя таблицы...В инете искал,нашёл только что задавать имя таблицы в запросе SELECT в виде переменной нельзя...помогите найти альтернативный путь или скажите о более гибкой конструкции где-бы заработал мною запрашиваемый запрос где имя таблицы задаётся через переменную:yes: :thanks:

Freezoff 01.03.2013 17:27

На мой взгляд у Вас просто неправильно расставлены кавычки...
$expName='chtoto';
$query="SELECT * FROM '$expName' WHERE userid = '1'";
$res=mysql_query($query);

Tim 01.03.2013 17:35

Цитата:

На мой взгляд у Вас неправильно расставлены кавычки...
У вас тоже. Смешали двойные с одинарными

Код:

$expName='chtoto';
$res=mysql_query("SELECT * FROM `{$expName}` WHERE userid = 1");

1. ` не тоже самое что ', это разные кавычки. ` - это та что над буквой Ё Используется для экранирования имён столбцов, таблиц и т.п. на случай если они случайно совпадут с зарезервированными словами MySQL. ' - эта используется для строк.
2. А вот ID заврачивать в кавычки не обязательно. Всё равно в число преобразуется, ибо userid скорее всего типа INT.

rudolfe 01.03.2013 17:47

аа чёрт я запутался..Вариант Тима работает,только в скрипте такое дело..вызывается скрипт через аякс и при выборе в списке селект передаются через пост переменные(это переменное=имя таблицы)...так вот при загрузке страницы и отправке пост данных в первый раз всё срабатывает и вот когда выбираю другое в списке и уже идёт второй запрос пост,то ничего не срабатывает..ребята помогите решить эту чёртову проблему...мозг раскалывается!)))

squall88 04.03.2013 02:20

$expName = 'chtoto';
$res = mysql_query("SELECT * FROM $expName WHERE userid = '1' ");

Должно работать :)

Tim 04.03.2013 10:21

squall88,
Зачем единица в апострофах

squall88 04.03.2013 12:30

Tim, да действительно лучше убрать.

ruslan_mart 24.06.2013 16:46

mysql_query('SELECT * FROM `'.$expName.'` WHERE `userid` = 1');


Часовой пояс GMT +3, время: 23:53.