- Отправка данных на сервер
- mysql_result
- Описание
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Смотрите также
- Обработка результатов запросов
- Выполнение запросов, обработка результатов и получение данных
- Get Query String from URL in php
- Using $_GET to Get Query String Parameters in php
- Using $_SERVER to Get Query String in php
- Other Articles You’ll Also Like:
- About The Programming Expert
Отправка данных на сервер
Самым простым способом передачи данных на сервер приложению PHP извне представляет передача данных через строку запроса.
Строка запроса представляет набор параметров, которые помещаются в адресе после вопросительного знака. При этом каждый параметр определяет название и значение. Например, в адресе:
http://localhost/user.php?name=Tom&age=36
Часть ?name=Tom&age=36 представляет строку запроса, в которой есть два параметра name и age . Для каждого параметра определено имя и значение, которые отделяются знаком равно. Параметр name имеет значение «Tom», а параметр age — значение 36. Друг от друга параметры отделяются знаком амперсанда.
Например, определим следующий скрипт user.php со следующим содержимым:
if(isset($_GET["age"])) < $age = $_GET["age"]; >echo "Имя: $name
Возраст: $age"; ?>
Когда мы вводим в адресную строку браузера некий адрес и нажимаем на оправку, то серверу отправляется запрос типа GET . В PHP по умолчанию определен глобальный ассоциативный массив $_GET , который хранит все значения, передаваемые в запроса GET. Используя ключи передаваемых данных, мы можем из массива $_GET получить передаваемые значения.
При отправки строки запроса ключами в этом массиве будут названия параметров, а значениями — значения параметров.
Например, в строке запроса передается параметр name=Tom . Соответственно, чтобы получить значение параметра name из запроса, обращаемся по соответствующему ключу:
Однако стоит учитывать, что в адресной строке необязательно будет использоваться строка запроса или конкретно данный параметр. Поэтому перед получением значения параметра сначала смотрим, а передан ли вообще такой параметр:
Теперь обратимся к этому скрипту, например, так http://localhost/user.php?name=Tom&age=36 :
mysql_result
Данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API. Альтернативы для данной функции:
Описание
Возвращает содержимое одного поля из набора результата MySQL.
Работая с большими результатами запросов, следует использовать одну из функций, обрабатывающих сразу целый ряд результата (указаны ниже). Так как эти функции возвращают значение нескольких ячеек сразу, они НАМНОГО быстрее mysql_result() . Кроме того, учтите, что указание численного смещения работает намного быстрее, чем указание колонки, или колонки с таблицей через точку.
Список параметров
Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query() .
Номер получаемого ряда из результата. Нумерация рядов начинается с 0 .
Имя или смещение получаемого поля.
Может быть как смещением поля, именем поля, так и именем поля вместе с таблицей (таблица.поле). Если для поля был указан псевдоним (‘select foo as bar from. ‘), используйте его вместо имени самого поля. Если не указан, возвращается первое поле.
Возвращаемые значения
Содержимое одного поля из набора результата MySQL в случае успешного выполнения, или false в случае возникновения ошибки.
Примеры
Пример #1 Пример использования mysql_result()
$link = mysql_connect ( ‘localhost’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
if (! mysql_select_db ( ‘database_name’ )) die( ‘Ошибка выбора базы данных: ‘ . mysql_error ());
>
$result = mysql_query ( ‘SELECT name FROM work.employee’ );
if (! $result ) die( ‘Ошибка выполнения запроса:’ . mysql_error ());
>
echo mysql_result ( $result , 2 ); // выведет имя третьего сотрудника
?php
Примечания
Замечание:
Вызовы функции mysql_result() не должны смешиваться с другими функциями, работающими с результатом запроса.
Смотрите также
- mysql_fetch_row() — Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
- mysql_fetch_array() — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
- mysql_fetch_assoc() — Возвращает ряд результата запроса в качестве ассоциативного массива
- mysql_fetch_object() — Обрабатывает ряд результата запроса и возвращает объект
Обработка результатов запросов
Выполнение запросов, обработка результатов и получение данных
Описываем нужный SQL-запрос и помещаем его в переменной $sql .
Затем выполняем запрос к базе данных с помощью метода query объекта mysqli.
Если ошибок нет — получим объект mysqli_result , который сохраняется в переменной $result .
Если же в SQL-запросе присутствуют ошибки — метод query вернет FALSE ,
тогда с помощью оператора throw генерируем исключение, которое обрабатываем с помощью Exception .
// устанавливаем соединение с базой данных newDB (создаем экземпляр класса new mysqli())
$conn = new mysqli($servername, $username, $password, $dbname);
// SQL-запрос
$sql = «SELECT * FROM users «;
// запрос к базе данных
$result = $conn->query($sql);
if ($result === FALSE) <
throw new \Exception(‘Ошибка в SQL-запросе!’);
>else <
echo «Выполнено:
«;
>
Получение данных одной строки в виде ассоциативного массива:
Получение данных одной строки в виде индексированного массива:
Получение данных одной строки в виде объекта:
$entries = array();
while ($entry = $result->fetch_object()) <
$entries[] = $entry;
>
Получение всех строк в виде ассоциативного массива:
Если результат не содержит количество результатов выборки — num_rows , выведем: «Нет результатов».
Выражение $result->$num_rows — получает число рядов в результирующей выборке
if (!$result->num_rows) <
echo «Нет результатов:
«;
>
Описываем нужный SQL-запрос и помещаем его в переменной $sql .
Затем выполняем запрос к базе данных с помощью функции mysqli_query($conn, $sql) и помещаем результат в переменную $result
// устанавливаем соединение с базой данных newDB
$conn = mysqli_connect($servername, $username, $password, $dbname);
// SQL-запрос
$sql = «SELECT * FROM users»;
// запрос к базе данных
$result = mysqli_query($conn, $sql);
Эта функция возвращает одну запись выборки в виде индексированного массива:
Эта функция возвращает одну запись выборки в виде ассоциативного массива:
Эта функция в зависимости от параметров может вернуть либо индексированный массив,
либо ассоциативный массив, либо массив, содержащий и индексы и строковые ключи:
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
Получение всего результата .
Эта функция возвращает двухмерный массив, содержащий все записи:
$row = mysqli_fetch_all($result, MYSQLI_ASSOC);
Если запрос к базе данных — выполнен, тогда выведем сообщение «Выполнено».
В противном случае выведем сообщение «Ошибка» и выведем информацию об ошибке mysqli_error($conn) :
if(mysqli_query($conn, $sql)) <
echo «Выполнено»;
>else <
echo «Ошибка:
» . mysqli_error($conn);
>
Выбираем данные из таблицы workers (Стиль ООП).
$servername = «localhost» ;
$username = «root» ;
$password = «» ;
$dbname = «newDB» ;
// Устанавливаем соединение с сервером MySQL:
$conn = new mysqli ( $servername , $username , $password , $dbname );
// Проверка соединения:
if ( $conn -> connect_error ) die ( «Не удалось подключиться: » . $conn -> connect_error );
>
echo «Соединение успешно установлено» ;
//1. Выбрать значения всех полей из таблицы workers:
// $sql = «SELECT * FROM workers «;
//2. Выбрать значения всех полей из таблицы workers, где >
// $sql = «SELECT * FROM workers WHERE >
//3. Выбрать значение поля id из таблицы workers, где значение поля name = ‘Иван’:
// $sql = «SELECT id FROM workers WHERE name = ‘Иван'»;
//4. Выбрать значение поля name из таблицы workers, где id > 5:
// $sql ;
//5. Выбрать значения всех полей из таблицы workers,
// где значение поля name = ‘Сидор’ И значение поля age > 30:
// $sql ;
//6. Иногда нужно указать много значений:
$sql = «SELECT name FROM workers WHERE AND AND >;
// Выполнение запроса
$result = $conn -> query ( $sql );
// Проверка выполнения запросов
if ( $result === FALSE ) throw new \ Exception ( ‘Ошибка в SQL-запросе!’ );
> else <
echo «Выполнено:
» ;
>
// получить все строки в виде ассоциативного массива
$entries = $result -> fetch_all ( MYSQLI_ASSOC );
// num_rows содержит количество результатов выборки
if (! $result -> num_rows ) echo «Нет результатов:
» ;
>
// закрываем соединение
$conn -> close ();
?>
Get Query String from URL in php
To get the query string from a URL in php, you can use $_GET super global to get specific key value pairs or $_SERVER super global to get the entire string.
// http://theprogrammingexpert.com/?key1=value1&key2=value2&key3=value3 echo $_GET['key1']; echo $_GET['key2']; echo $_SERVER['QUERY_STRING']; //Output: value1 value2 key1=value1&key2=value2&key3=value3
A query string is a part of a URL that assigns values to specified parameters. When building web pages, query strings help us pass and access information to be used on our web pages.
When working in php, the ability to easily access and work with query strings is important.
To get a query string from a URL, there are a few different ways you can get the key value pairs.
To get a specific parameter from a query string, you can use $_GET super global to access individual parameters from the query string by name.
// http://theprogrammingexpert.com/?key1=value1&key2=value2&key3=value3 echo $_GET['key1']; //Output: value1
If you want to get the entire query string, you can use the $_SERVER super global.
// http://theprogrammingexpert.com/?key1=value1&key2=value2&key3=value3 echo $_SERVER['QUERY_STRING']; //Output: key1=value1&key2=value2&key3=value3
After getting the entire query string, you can parse it for the key value pairs with the php parse_str() function.
Using $_GET to Get Query String Parameters in php
The $_GET super global variable allows us to get individual key value pairs from query strings.
There are a few additional cases which occur when using query strings that I want to share with you.
First, in a query string, you can have duplicate key names followed by square brackets. This will create a child array in $_GET for that key with numerically indexed values.
// http://theprogrammingexpert.com/?key[]=value1&key[]=value2&key[]=value3 echo $_GET['key'][0]; echo $_GET['key'][1]; echo $_GET['key'][2]; //Output: value1 value2 value3
If the brackets are not empty, and have keys in them, then for a particular key, the child array belonging to the key will be an associative array.
// http://theprogrammingexpert.com/?key[ex1]=value1&key[ex2]=value2&key[ex3]=value3 echo $_GET['key']['ex1']; echo $_GET['key']['ex2']; echo $_GET['key']['ex3']; //Output: value1 value2 value3
Using $_SERVER to Get Query String in php
You can also use the $_SERVER super global variable to get the entire query string. After getting the query string, you can parse it with the php parse_str() function.
// http://theprogrammingexpert.com/?key1=value1&key2=value2&key3=value3 query_string = $_SERVER['QUERY_STRING']; parse_str(query_string); echo $key1; echo $key2; echo $key3; //Output: value1 value2 value3
Hopefully this article has been useful for you to learn how to get query strings and work with them in php.
Other Articles You’ll Also Like:
- 1. php e – Using M_E and exp() Function to Get Euler’s Constant e
- 2. php range() – Create Array of Elements Within Given Range
- 3. php is_float() Function – Check if Variable is Float in php
- 4. php array_key_exists() Function – Check if Key Exists in Array
- 5. In PHP isset Method is Used For Checking if Variable is Defined
- 6. php Square Root with sqrt Function
- 7. php session_destroy() – Delete Session File Where Session Data is Stored
- 8. php array_walk() – Modify Elements in Array with Callback Function
- 9. Capitalize First Letter of String with php ucfirst() Function
- 10. preg_replace php – Use Regex to Search and Replace
About The Programming Expert
The Programming Expert is a compilation of a programmer’s findings in the world of software development, website creation, and automation of processes.
Programming allows us to create amazing applications which make our work more efficient, repeatable and accurate.
At the end of the day, we want to be able to just push a button and let the code do it’s magic.
You can read more about us on our about page.