У меня есть этот код:
$params = $_GET["params"];
print $params;
if ($_SERVER['REQUEST_METHOD'] == "GET") {
--->//$result = R::getAll( 'SELECT $params FROM user');
} elseif ($_SERVER['REQUEST_METHOD'] == "POST") {
}
echo json_encode($result);
Как правильно установить переменную $params
в мой ответ. Я делаю запрос через RedBeanPhP
Я думаю, что вы должны использовать двойные кавычки, чтобы разрешить значение переменной.
вместо:
$result = R::getAll( 'SELECT $params FROM user');
Пытаться:
$result = R::getAll("SELECT $params FROM user");
Если параметры имеют id,username,email
формата id,username,email
вы можете просто добавить новые, например, так:
$params .= ',telephone';
Имейте в виду: это очень небезопасный способ подключения к вашей базе данных, читайте о SQL Incjection
Вы можете прочитать немного об этом здесь.
Что вам нужно сделать, это отправить запрос get с переменными, которые вы ищете. Это может выглядеть так:
<form action="#" method="get">
Some variable
<input type="text" name="params" value="Foobar"><br>
<input type="submit" value="Submit">
</form>
<?php
$params = $_GET["params"];
echo '<pre>';
print_r($params);
echo '</pre>';
/* This is redundant, considering your question
if ($_SERVER['REQUEST_METHOD'] == "GET") {
--->//$result = R::getAll( 'SELECT $params FROM user');
} elseif ($_SERVER['REQUEST_METHOD'] == "POST") {
}
echo json_encode($result);
*/
?>
HTML
Эта часть кода представляет собой форму, где вы устанавливаете метод как запрос get. Назначением действия является #
, что означает, что вы отправляете его на ту же страницу, с которой оно было отправлено. И вы определяете переменную $_GET['params']
равной Foobar
. И это отправляется, когда вы нажимаете кнопку отправки.
<form action="#" method="get">
Some variable
<input type="text" name="params" value="Foobar"><br>
<input type="submit" value="Submit">
</form>
PHP
<?php
$params = $_GET["params"]; // This sets the 'params'-get-variable.
echo '<pre>';
print_r($params); // This prints it, so it looks pretty. :-)
echo '</pre>';
?>