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

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

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



Новичок
*

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




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

$query="SELECT * FROM inst";

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

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

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



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

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




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

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


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

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



Новичок
*

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




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

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



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

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




Цитата (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  
Дата
Цитировать сообщение

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



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

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




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


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

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



Новичок
*

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




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

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



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

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




Цитата (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 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

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



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

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




$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 год, 1 месяц, 26 дней
Карма:




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

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



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

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




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

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


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

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



Новичок
*

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




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

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



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

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




$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 год, 1 месяц, 26 дней
Карма:




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

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



Лысый и злой
******

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

Не курю:
1 год, 5 месяцев, 25 дней


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


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

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



Лысый и злой
******

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

Не курю:
1 год, 5 месяцев, 25 дней


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

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


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

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

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