Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как в SELECT поставить переменную на место таблицы
VSK  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42442
На форуме: 1 год, 3 месяца, 27 дней
Карма:




Здравствуйте!
У меня такая проблема:есть файл который обращается к базе, и вызывает определенную таблицу.

$query="SELECT * FROM inst";

Мне нужно на место названия таблицы поставить переменную. Эта переменная содержится в ссылке на файл
?view=tovar&table=inst

Вместо mult поставить переменную $table
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5617
Пользователь №: 35718
На форуме: 4 года, 6 месяцев, 4 дня
Карма: 173




Цитата (VSK @ 27.01.2016 - 10:02)
Эта переменная содержится в ссылке на файл

это крайне плохо


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VSK  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42442
На форуме: 1 год, 3 месяца, 27 дней
Карма:




Спасибо, а еще варианты будут?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2632
Пользователь №: 37963
На форуме: 3 года, 9 месяцев, 13 дней
Карма: 29




Цитата (VSK @ 27.01.2016 - 11:02)


$query="SELECT * FROM inst";

?
view=tovar&table=inst

Вместо mult поставить переменную $table

Вместо mult - а где он/а? Это (table=inst )?


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22919
Пользователь №: 20039
На форуме: 7 лет, 5 месяцев, 16 дней
Карма: 607




Так делать нельзя.
Объясни, зачем тебе это всё? Кого-то взломать хочешь?


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VSK  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42442
На форуме: 1 год, 3 месяца, 27 дней
Карма:




Извитите ошибся. Да вместо inst
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15347
Пользователь №: 4190
На форуме: 9 лет, 3 месяца, 18 дней
Карма: 467




Цитата (VSK @ 27.01.2016 - 11:02)
Мне нужно на место названия таблицы поставить переменную.

Как тебе уже сказали, ТАК ДЕЛАТЬ НЕЛЬЗЯ!!! Потому что ты открываешь гигантские ворота для взлома.

Проверяй, что передано в GET/POST параметрах. И когда определенный входной параметр равен чему-то определенному, то тогда используй определенное имя таблицы.
Например,
if( $_GET['table'] == 'inst' ) {
$table_name = 'inst';
}
$query = "SELECT * from `$table_name`";

При таком подходе ты изначально защищаешься от взлома (от SQL-инъекции).

Это сообщение отредактировал sergeiss - 27.01.2016 - 11:30


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2632
Пользователь №: 37963
На форуме: 3 года, 9 месяцев, 13 дней
Карма: 29




$test = 'http://test/index.php?view=tovar&table=test';
$table = preg_replace('#^(.*?)(=)(\w+)$#u', '$3', $test);
$query = "SELECT * FROM ".$table;
echo $query;




--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VSK  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42442
На форуме: 1 год, 3 месяца, 27 дней
Карма:




Если нельзя, тогда подскажите как решить такую задачу.
Есть интернет-магазин. При выборе изделия подгружается файл в котором находится таблица с перечнем запасных частей к нему (таблица находится в базе данных). Сответственно при разных вариантах выбора изделия должны подгружаться разные таблицы.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2632
Пользователь №: 37963
На форуме: 3 года, 9 месяцев, 13 дней
Карма: 29




Цитата (VSK @ 27.01.2016 - 11:42)
Если нельзя, тогда подскажите как решить такую задачу.

sergeiss Правильно сказал, сделайте массив, со всеми возможными вариантами (таблицы, которые имеются), потом моей регуляркой выдёргиваем из url и проверяем этой функцией in_array


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VSK  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42442
На форуме: 1 год, 3 месяца, 27 дней
Карма:




Можно пример? Хотя бы общий.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2632
Пользователь №: 37963
На форуме: 3 года, 9 месяцев, 13 дней
Карма: 29




$url = 'http://test/index.php?view=tovar&table=test'; // Ссылка
$table = preg_replace('#^(.*?)(=)(\w+)$#u', '$3', $url); // Выдёргиваем
$tabl_original = array("foo", "bar", "hello", "world"); // Таблицы, которые реально существуют

if(in_array($table, $tabl_original)){
$query = "SELECT * FROM ".$table;
} else {
$query = FALSE;
}


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VSK  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 8
Пользователь №: 42442
На форуме: 1 год, 3 месяца, 27 дней
Карма:




Спасибо. Буду работать.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26368
Пользователь №: 21350
На форуме: 7 лет, 2 месяца, 10 дней
Карма: 736




вот же я тебе написал http://phpforum.su/index.php?showtopic=88730&hl=


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26368
Пользователь №: 21350
На форуме: 7 лет, 2 месяца, 10 дней
Карма: 736




Цитата
$table = preg_replace('#^(.*?)(=)(\w+)$#u', '$3', $url); // Выдёргиваем

нафига?))) чё просто параметр из GET вытащить не судьба если там in_array() есть уже


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса