MySQL — выберите запрос

Команда SQL SELECT используется для выборки данных из базы данных MySQL. Вы можете использовать эту команду в приглашении mysql>, а также в любом скрипте, например PHP.

Синтаксис

Вот общий синтаксис SQL команды SELECT для извлечения данных из таблицы MySQL:

SELECT field1, field2,...fieldN 
FROM table_name1, table_name2...
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • Вы можете использовать одну или несколько таблиц, разделенных запятыми, для включения различных условий с помощью предложения WHERE, но предложение WHERE является необязательной частью команды SELECT.

  • Вы можете получить одно или несколько полей с помощью одной команды SELECT.

  • Вместо полей можно указать звездочку (*). В этом случае SELECT вернет все поля.

  • Вы можете указать любое условие с помощью предложения WHERE.

  • Вы можете указать смещение с помощью OFFSET, откуда SELECT начнет возвращать записи. По умолчанию смещение начинается с нуля.

  • Вы можете ограничить количество возвратов с помощью атрибута LIMIT .

Получение данных из командной строки

Это будет использовать команду SQL SELECT для извлечения данных из таблицы MySQL tutorials_tbl .

Пример

В следующем примере будут возвращены все записи из таблицы tutorials_tbl

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl 
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|           1 | Learn PHP      | John Poul       | 2007-05-21      |
|           2 | Learn MySQL    | Abdul S         | 2007-05-21      |
|           3 | JAVA Tutorial  | Sanjay          | 2007-05-21      |
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.01 sec)

mysql>

Получение данных с помощью скрипта PHP

Вы можете использовать ту же команду SQL SELECT в функции PHP mysql_query () . Эта функция используется для выполнения команды SQL, а затем другая функция PHP mysql_fetch_array () может использоваться для получения всех выбранных данных. Эта функция возвращает строку как ассоциативный массив, числовой массив или и то, и другое. Эта функция возвращает FALSE, если строк больше нет.

Следующая программа представляет собой простой пример, который покажет, как получать / отображать записи из таблицы tutorials_tbl .

Пример

В следующем блоке кода будут показаны все записи из таблицы tutorials_tbl.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
         "Title: {$row['tutorial_title']} <br> ".
         "Author: {$row['tutorial_author']} <br> ".
         "Submission Date : {$row['submission_date']} <br> ".
         "--------------------------------<br>";
   } 
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

Содержимое строк присваивается переменной $ row, а затем печатаются значения в этой строке.

ПРИМЕЧАНИЕ. — Всегда не забывайте помещать фигурные скобки, если вы хотите вставить значение массива непосредственно в строку.

В приведенном выше примере константа MYSQL_ASSOC используется в качестве второго аргумента функции PHP mysql_fetch_array () , так что она возвращает строку как ассоциативный массив. С ассоциативным массивом вы можете получить доступ к полю, используя его имя вместо индекса.

PHP предоставляет другую функцию, называемую mysql_fetch_assoc () , которая также возвращает строку в виде ассоциативного массива.

Пример

В следующем примере отображаются все записи из таблицы tutorial_tbl с использованием функции mysql_fetch_assoc ().

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
   $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
      FROM tutorials_tbl';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_assoc($retval)) {
      echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
         "Title: {$row['tutorial_title']} <br> ".
         "Author: {$row['tutorial_author']} <br> ".
         "Submission Date : {$row['submission_date']} <br> ".
         "--------------------------------<br>";
   } 
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

Вы также можете использовать константу MYSQL_NUM в качестве второго аргумента функции PHP mysql_fetch_array (). Это заставит функцию вернуть массив с числовым индексом.

Пример

Попробуйте следующий пример, чтобы отобразить все записи из таблицы tutorials_tbl с помощью аргумента MYSQL_NUM.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
   $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
      FROM tutorials_tbl';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
      echo "Tutorial ID :{$row[0]}  <br> ".
         "Title: {$row[1]} <br> ".
         "Author: {$row[2]} <br> ".
         "Submission Date : {$row[3]} <br> ".
         "--------------------------------<br>";
   }
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

Все три приведенных выше примера дадут одинаковый результат.

Освобождение памяти

Рекомендуется освобождать память курсора в конце каждого оператора SELECT. Это можно сделать с помощью функции PHP mysql_free_result () . Следующая программа является примером, показывающим, как ее следует использовать.

Пример

Попробуйте следующий пример —

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
   $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
      FROM tutorials_tbl';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
      echo "Tutorial ID :{$row[0]}  <br> ".
         "Title: {$row[1]} <br> ".
         "Author: {$row[2]} <br> ".
         "Submission Date : {$row[3]} <br> ".
         "--------------------------------<br>";
   }
   mysql_free_result($retval);
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

При извлечении данных вы можете написать любой сложный код, но процедура останется такой же, как упомянуто выше.

Выберите поля, которые будут показаны. Прочие будут скрыты. Перктаскивайте мышкой для изменения порядка полей.
  • Изображение
  • SKU
  • Рейтинг
  • Цена
  • Запасы
  • Доступность
  • В корзину
  • Описание
  • Содержимое
  • Вес
  • Размеры
  • Дополнительная информация
  • Атрибуты
  • Custom attributes
  • Настраиваемые поля
Сравнить
Список желаний 0
Открыть страницу желаний Продолжить покупки