Я хочу получить значение из URL для выбора данных из базы данных по ID. Я хочу значение для id.
Например, если я открываю www.example.com/index.php?id=12
Я хочу получить значение, id = 12 в базе данных.
Если я открою www.example.com/index.php?id=7
получить значение, id = 7 в базе данных и так далее.
У меня есть код:
$results = mysql_query("SELECT * FROM next WHERE id=$id"); while ($row = mysql_fetch_array($results)) { $url = $row['url']; echo $url; }
Ссылка на сайт:
http://www.example.com/?id=2
Код:
$id = intval($_GET['id']); $results = mysql_query("SELECT * FROM next WHERE id=$id"); while ($row = mysql_fetch_array($results)) { $url = $row['url']; echo $url; //Outputs: 2 }
Существует два способа получить переменную из URL-адреса в PHP:
Когда ваш URL-адрес: http://www.example.com/index.php?id=7
вы можете получить этот id
помощью команды $_GET['id']
или $_REQUEST['id']
и сохранить в переменной $id
,
Посмотрите:
// url is www.example.com?id=7 //get id from url via $_GET['id'] command: $id = $_GET['id']
то же самое будет:
//get id from url via $_REQUEST['id'] command: $id = $_REQUEST['id']
разница в том, что переменная может быть передана в файл через URL-адрес или через метод POST .
если переменная передается через url, вы можете получить ее с помощью $_GET['variable_name']
или $_REQUEST['variable_name']
но если переменная отправлена, то вам нужно $_POST['variable_name']
или $_REQUST['variable_name']
Таким образом, вы видите, что $_REQUEST['variable_name']
может использоваться в обоих направлениях.
PS: Также помните – никогда не делайте так: $results = mysql_query("SELECT * FROM next WHERE id=$id");
это может привести к тому, что MySQL Injection и ваша база данных могут быть взломаны.
Попробуй использовать:
$results = mysql_query("SELECT * FROM next WHERE id='".mysql_real_escape_string($id)."'");
Вы можете получить это значение, используя массив $_GET
. Таким образом, значение id будет храниться в $_GET['id']
.
Таким образом, в вашем случае вы можете сохранить это значение в переменной $id
следующим образом:
$id = $_GET['id'];
Вы можете получить доступ к этим значениям с помощью глобальной переменной $ _GET
//www.example.com/index.php?id=7 print $_GET['id']; // prints "7"
Вы должны проверить все «входящие» пользовательские данные – так что здесь «id» является INT. Не используйте его непосредственно в своем SQL (уязвим для инъекций SQL).
Вы также можете получить значение строки запроса как:
$uri = $_SERVER["REQUEST_URI"]; //it will print full url $uriArray = explode('/', $uri); //convert string into array with explode $id = $urlArray[1];