Как я могу получить текущие критерии просмотра с помощью php и инструкции mysql "Показать имя представления создания"

Я хочу поместить текущие критерии в переменную, изменить эту переменную и затем повторно запустить запрос. Я просто не понимаю, как использовать инструкцию из PHP.

Спасибо за любую помощь

--РЕДАКТИРОВАТЬ--

Возможный код:

if($_POST['flag']=='flag'){
    $sqlShow = 'show create view `filter_tbl`';
    $result = mysql_query($sqlShow);
    $resultQuery = $result;
    $resultQuery .= ' AND `lead_id`!="'.$idval.'"';
    $result2 = mysql_query($resultQuery);
    echo $result;
    if($result){
        echo true;
    }
    else{
        echo mysql_error();
    }
}
-1
jhodgson4 28 Июн 2012 в 23:08
Пожалуйста, предоставьте пример кода, с которым вы работаете или у которого возникли проблемы.
 – 
GDP
28 Июн 2012 в 23:09
Хорошо, я добавил несколько, я технически не знаю, как выполнить то, что мне нужно, так что это всего лишь предположение.
 – 
jhodgson4
28 Июн 2012 в 23:32
2
Мне кажется, что вы просто хотите выбрать что-то из представления с критериями. Для выборок представления работают как обычные таблицы. Просто сделай mysql_query('select * from filter_tbl where lead_id !="'.$idval.'"').
 – 
kba
28 Июн 2012 в 23:42
Должен ли я понять, что вы пытаетесь получить SQL, который использует представление, и изменить этот SQL для повторного выполнения?
 – 
GDP
28 Июн 2012 в 23:42
... проблема в том, что содержимое представления не изменится. Я использую соревнование позже, чтобы отправлять электронные письма на адрес
 – 
jhodgson4
28 Июн 2012 в 23:54

1 ответ

Лучший ответ

Используйте это, чтобы получить оператор SQL, который использует View:

$viewSQL = "SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS 
WHERE TABLE_SCHEMA = 'myDatabase' AND TABLE_NAME = 'filter_tbl'";

$result = mysql_query($viewSQL);
$resultQuery = mysql_fetch_assoc($result);
$SqlUsedByView = $resultQuery['VIEW_DEFINITION'];
// Now alter the WHERE clause to your needs:
$MyNewSQL = str_ireplace( "WHERE ", "WHERE `lead_id`!=".$idval." AND " , $SqlUsedByView);

Примечание . Я не знаю, что на самом деле представляет собой предложение WHERE вашего представления, поэтому приведенная выше str_ireplace () является лишь примером того, как вы можете внести свои изменения.

1
GDP 29 Июн 2012 в 00:45
Это здорово, но как мне передать строковое значение из приведенного выше в переменную?
 – 
jhodgson4
29 Июн 2012 в 00:26
Как и любая другая переменная из запроса sql, см. Обновленный ответ.
 – 
GDP
29 Июн 2012 в 00:29
Большое спасибо, я оставлю WHERE как есть и просто добавлю AND! = Ect ..
 – 
jhodgson4
29 Июн 2012 в 00:47
Что бы ни работало ... просто поймите, что это полный оператор SQL, предложение WHERE может не быть его последней частью ... поэтому может быть предложение ORDER BY или GROUP BY и т. Д. .
 – 
GDP
29 Июн 2012 в 00:54