Select php


<?php /* Attempt MySQL server connection. Assuming you are running MySQL server with default setting (user 'root' with no password) */ $link = mysqli_connect("localhost", "root", "", "demo");   // Check connection if($link === false){  die("ERROR: Could not connect. " . mysqli_connect_error()); }   // Attempt select query execution $sql = "SELECT * FROM persons"; if($result = mysqli_query($link, $sql)){  if(mysqli_num_rows($result) > 0){  echo "<table>";  echo "<tr>";  echo "<th>id</th>";  echo "<th>first_name</th>";  echo "<th>last_name</th>";  echo "<th>email</th>";  echo "</tr>";  while($row = mysqli_fetch_array($result)){  echo "<tr>";  echo "<td>" . $row['id'] . "</td>";  echo "<td>" . $row['first_name'] . "</td>";  echo "<td>" . $row['last_name'] . "</td>";  echo "<td>" . $row['email'] . "</td>";  echo "</tr>";  }  echo "</table>";  // Free result set  mysqli_free_result($result);  } else{  echo "No records matching your query were found.";  } } else{  echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); }   // Close connection mysqli_close($link); ?>  

<?php /* Attempt MySQL server connection. Assuming you are running MySQL server with default setting (user 'root' with no password) */ $mysqli = new mysqli("localhost", "root", "", "demo");   // Check connection if($mysqli === false){  die("ERROR: Could not connect. " . $mysqli->connect_error); }   // Attempt select query execution $sql = "SELECT * FROM persons"; if($result = $mysqli->query($sql)){  if($result->num_rows > 0){  echo "<table>";  echo "<tr>";  echo "<th>id</th>";  echo "<th>first_name</th>";  echo "<th>last_name</th>";  echo "<th>email</th>";  echo "</tr>";  while($row = $result->fetch_array()){  echo "<tr>";  echo "<td>" . $row['id'] . "</td>";  echo "<td>" . $row['first_name'] . "</td>";  echo "<td>" . $row['last_name'] . "</td>";  echo "<td>" . $row['email'] . "</td>";  echo "</tr>";  }  echo "</table>";  // Free result set  $result->free();  } else{  echo "No records matching your query were found.";  } } else{  echo "ERROR: Could not able to execute $sql. " . $mysqli->error; }   // Close connection $mysqli->close(); ?>  

<?php /* Attempt MySQL server connection. Assuming you are running MySQL server with default setting (user 'root' with no password) */ try{  $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");  // Set the PDO error mode to exception  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){  die("ERROR: Could not connect. " . $e->getMessage()); }   // Attempt select query execution try{  $sql = "SELECT * FROM persons";   $result = $pdo->query($sql);  if($result->rowCount() > 0){  echo "<table>";  echo "<tr>";  echo "<th>id</th>";  echo "<th>first_name</th>";  echo "<th>last_name</th>";  echo "<th>email</th>";  echo "</tr>";  while($row = $result->fetch()){  echo "<tr>";  echo "<td>" . $row['id'] . "</td>";  echo "<td>" . $row['first_name'] . "</td>";  echo "<td>" . $row['last_name'] . "</td>";  echo "<td>" . $row['email'] . "</td>";  echo "</tr>";  }  echo "</table>";  // Free result set  unset($result);  } else{  echo "No records matching your query were found.";  } } catch(PDOException $e){  die("ERROR: Could not able to execute $sql. " . $e->getMessage()); }   // Close connection unset($pdo); ?>  

www.tutorialrepublic.com

Список. Один вариант выбора

Давайте рассмотрим новый термин «список» (select box), также известный, как «ниспадающий список» или «прокручиваемый список» (как его только не называют). Каждый пункт списка определяется при помощи тега option. Тег option, как и другие элементы ввода, имеет атрибут value, а также текст, заключенный внутри тегов option. Это значит: когда пользователь выберет «Male», переменной «formGender» ($_POST['formGender']) будет присвоено значение «M».

HTML

 <p>  What is your Gender?  <select name="formGender">   <option value="">Select...</option>   <option value="M">Male</option>     <option value="F">Female</option>  </select>  </p>

Выбранное пользователем значение можно узнать при помощи стандартного массива $_POST, также как обычное текстовое поле ввода.

PHP

<?php  if(isset($_POST['formSubmit']) )  {   $varMovie = $_POST['formMovie'];   $varName = $_POST['formName'];   $varGender = $_POST['formGender'];   $errorMessage = "";   // - - - и т.д. - - -  }  ?>  

Всегда хорошо делать первую строку в списке пустой. Это побуждает пользователя сделать выбор и позволяет определить, выбрал ли пользователь что-нибудь из списка. Конечно, потребуется проверка:

PHP

<?php  if(!isset($_POST['formGender']))  {   $errorMessage .= "<li>You forgot to select your Gender!</li>";  }  ?>

Список. Выбираем несколько вариантов

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

Ниже представлена HTML разметка:

HTML

<label for='formCountries[]'>  Select the countries that you have visited:  </label><br>  <select multiple="multiple" name="formCountries[]">   <option value="US">United States</option>     <option value="UK">United Kingdom</option>   <option value="France">France</option>   <option value="Mexico">Mexico</option>     <option value="Russia">Russia</option>   <option value="Japan">Japan</option>  </select>

Отметьте схожесть с группой флажков. Для начала установите атрибут multiple=«multiple» в теге select. Во-вторых, поместите квадратные скобки в конец значения атрибута name


. Сейчас нет необходимости делать первый вариант выбора в списке пустым, так как мы просто проверим, выбрал ли пользователь что-нибудь или нет. Чтобы выбрать несколько значений, используйте при кликах клавиши shift и ctrl.

PHP код для обработки данного списка очень схож с php кодом для обработки группы флажков. $_POST['formCountries'] возвратит массив из выбранных пользователем значений.

PHP

<?php  if(isset($_POST['formSubmit']))  {   $aCountries = $_POST['formCountries'];   if(!isset($aCountries))   {   echo("<p>You didn't select any countries!</p>n");   }   else   {   $nCountries = count($aCountries);   echo("<p>You selected $nCountries countries: ");   for($i=0; $i < $nCountries; $i++)   {   echo($aCountries[$i] . " ");   }   echo("</p>");   }  }  ?>

Как обычно, используем isset, чтобы убедиться в том, что пользователь выбрал хоть что-нибудь.

Используем конструкцию switch

Сейчас давайте опять вернемся к списку, в котором присутствует всего один вариант выбора. Наша задача сделать так, чтобы каждому варианту выбора соответствовало строго определенное действие. Конечно, можно использовать инструкцию if, однако она в данном случае способна загрязнить код. Давайте рассмотрим два пути: динамические команды и инструкцию switch


.

PHP

<?php  if(isset($_POST['formSubmit']))  {   $varCountry = $_POST['formCountry'];   $errorMessage = "";   if(empty($varCountry))   {   $errorMessage = "<li>You forgot to select a country!</li>";   }   if($errorMessage != "")   {   echo("<p>There was an error with your form:</p>n");   echo("<ul>" . $errorMessage . "</ul>n");   }   else   {   // оба метода не мгут работать одновременно   // закомментируйте тот метод, который вам не требуется   // метод 1: switch   $redir = "US.html";   switch($varCountry)   {   case "US": $redir = "US.html"; break;   case "UK": $redir = "UK.html"; break;   case "France": $redir = "France.html"; break;   case "Mexico": $redir = "Mexico.html"; break;   case "Russia": $redir = "Russia.html"; break;   case "Japan": $redir = "Japan.html"; break;   default: echo("Error!"); exit(); break;   }   echo " redirecting to: $redir ";   // header("Location: $redir");   // окончание метода 1   // метод 2: динамический редирект (переадрессация)   //header("Location: " . $varCountry . ".html");   // окончание метода 2   exit();   }  }  ?>  

У каждого из этих двух подходов есть свои плюсы и минусы. Метод основанный на switch‘е в сущности есть ни что иное, как лаконичная запись ряда конструкций «if». После ключевого слова case перечисляются возможные варианты значений. В случае совпадения результата вычисления выражения (значение переменной $varCountry) с каким-либо значением, произойдут действия, записанные далее, вплоть до конструкции break. В нашем случае произойдет переадресация к соответствующей для каждой страны странице. Если ни одна страна найдена не будет, то выведется сообщение "Error", стоящее за ключевым словом default.

Второй метод заключается в передаче выбранного значения функции header, которая перенаправит пользователя к корректной странице.

Первый метод требует написания большего объема кода, но он и более безопасен, так как он позволяет посредством формы переадресовать пользователя к заранее запрограммированным вариантам, при отсутствии варианта выбора будет выведено сообщение об ошибке и выполнение сценария будет прекращено.

Второй метод более краткий (значительно), зато его безопасность сильно снижена. Так любой пользователь может делать с формой, что хочет, и вводить любое значение, какое пожелает. При использовании второго метода сначала желательно проверить выбранные страны, чтобы застраховать себя от переадресации к «вредной» странице.

По материалам. Надеюсь хоть кому-то поможет)

dnzl.ru

Как сделать выборку из базы данных. Оператор выборки SELECT


Перед тем как производить выборку из базы данных, первым делом нужно подключиться к MySQL серверу и выбрать базу данных для работы. Как вы уже знаете из предыдущей статьи рубрики «Уроки PHP и MySQL», делается это следующим образом.

После соединения с MySQL сервером и выбора базы данных можно приступить непосредственно к выборке из БД. Для примера возьмем базу данных, которую мы создавали в предыдущей статье. Напомню, что была создана база данных с именем db_name и одной таблицей first_table, в которой было всего три поля: id (идентификатор), name (имя), last_name (фамилия). Для того чтобы произвести выборку из базы данных можно использовать функцию mysql_query(), которая в данном случае имеет следующий синтаксис.

где, $db – идентификатор подключения.

Если говорить простыми словами, то данный код расшифровывается как «ВЫБРАТЬ поля (перечисляем названия через запятую) ИЗ таблицы (указываем имя таблицы БД) ГДЕ выполняется условие (прописываем условие)». Как видите синтаксис функции очень простой, а сам код похож на обычный человеческий язык.

Поскольку функция mysql_query() возвращают результат, то его нужно поместить в какую-то переменную для дальнейшего использования, например, в переменную $result.


Теперь результат выполнения функции mysql_query() хранится в переменной $result и может быть использован, например, для формирования массива и вывода результатов на экран. Более подробно об этом мы поговорим чуть позже, ну а пока перейдем к примерам. В качестве базы данных для примера будем использовать базу db_name из предыдущей статьи.

Итак, если нужно вытащить все поля из базы данных используем следующий код.

Звездочка означает, что нужно вытащить все поля из таблицы.

Если нужно вытащить только некоторые поля, например, имя и фамилию.

name, last_name – поля с именами и фамилиями пользователей.

Если нужно получить точные данные, например, фамилию всех пользователей в базе данных с определенным именем (имя будет занесено в переменную $name).

name=’$name’ – поле name равняется переменной $name.

Кроме одного условия мы также можем перечислить несколько, например, нужно получить идентификатор всех пользователей с определенным именем и фамилией (имя и фамилия будут занесены в переменные $name и $last_name соответственно). Для этого можем использовать следующий код.

Если же нам нужно получить записи, где выполняется одно условие из нескольких, например, получить идентификаторы всех пользователей у которых имя или фамилия отвечают заданным в условиях.

Если вам нужно отсортировать результат по каким-то параметрам, например, по имени.

ORDER BY name – отсортировать по имени.


Если нужно отсортировать в обратном порядке.

DESC – в обратном порядке.

Если нужно вытащить только определенное количество полей из базы данных. К примеру, нужно вытащить первые пять полей.

LIMIT 5 – вытащить из БД только первые пять результатов.

Это были небольшие примеры выборки из базы данных. Теперь давайте рассмотрим, как преобразовать полученный результат в массив для дальнейшего использования, например, для вывода результата на экран. Для этого в PHP существует специальная функция PHP mysql_fetch_array().

Результат выполнения функции мы можем поместить в переменную, например, переменную $myrow, которая будет хранить в себе ассоциативный массив. В качестве параметра функции mysql_fetch_array() будет передан результат выполнения функции mysql_query(). Все это будет выглядеть следующим образом.

Теперь мы можем обращаться к элементам ассоциативного массива $myrow. В качестве примера давайте рассмотрим код, который выводит на экран имя пользователя с идентификатором id =1. В качестве базы данных будет использоваться база db_first из предыдущей статьи.

Как видите все очень просто и понятно.

Ну а теперь перейдем к следующему оператору INSERT, который отвечает за добавление информации в базу данных.

Добавление информации в базу данных. Оператор INSERT

Оператор INSERT применяется для добавления информации в базу данных. Код, отвечающий за добавление, имеет следующий синтаксис.

Данный код можно было бы прочитать как «ВСТАВИТЬ В таблицу (имя таблицы) в поля (названия полей через запятую) ЗНАЧЕНИЯ (перечисляем значения через запятую)».

Например, нам нужно добавить в таблицу first_table имя и фамилию нового пользователя. Для этого можно использовать следующий код.

Где, $name и $last_name – переменные с именем и фамилией нового пользователя.

Для того чтобы проверить результат можно использовать конструкцию if – else.

Другими словами, если в переменную $result попадет истина, то выведется сообщение, что запись добавлена. В противном случае выведется, что запись в базу данных не добавлена.

Обновление информации в базе данных. Оператор UPDATE

Оператор UPDATE применяется для обновления уже существующей информации в базе данных. Синтаксис функции mysql_query в данном случае следующий.

Теперь перейдем к примеру. Допустим нам нужно изменить имя и фамилию для пользователя с идентификатором $id в таблице db_name. Для этого можно использовать следующий код.

Теперь давайте перейдем к заключительной части статьи и рассмотрим последний оператор DELETE, который отвечает за удаление информации из базы данных.

Удаление информации из базы данных. Оператор DELETE

Оператор DELETE применяется для удаления полей из базы данных. Синтаксис функции mysql_query() в данном случае следующий.

Теперь как обычно перейдем к примеру. Допустим нам нужно удалить пользователя с идентификатором $id из таблицы db_name. Для этого можно использовать следующий код.

На этом данная статья подошла к концу. Материал не сложный, но объяснять его посредством текста достаточно сложно. Все же я думаю, вы поняли всю суть вышеизложенного материала. Если у вас остались какие-то вопросы по данной статье, вы всегда можете задать их в комментариях.

На этом все. Удачи вам и успехов в изучении PHP и MySQL.

dmitriydenisov.com

<div class="container">  <div>  <label class="prefix" for="get_country">Страна:</label>  <select id="get_country" name="get_country">  <option value="">выберите страну</option>  <?php  require_once("db.php");   $result = mysql_query("SELECT * FROM country");  while ($row = mysql_fetch_array($result))  {  echo "<option value='".$row["id"]."'>".$row["name"]."</option>";  }  ?>  </select> </div>  <div id="sub_region">  <label class="prefix" for="get_region">Регион:</label>  <select id="get_region" name="get_region"></select> </div>  <div id="sub_city">  <label class="prefix" for="get_city">Город:</label>  <select id="get_city" name="get_city"></select> </div>  </div> 
@import url('https://fonts.googleapis.com/css?family=Open+Sans|Roboto');  html{  height: 100%; }  body{  font-family: 'Roboto', sans-serif;  font-size: 14px;  color:#474d59;  margin: 0;   padding: 0; }  .container {  padding-right:15px;  padding-left:15px;  margin-right:auto;  margin-left:auto; }  @media (min-width:568px) {  .container {  width: 538px;  } }  @media (min-width:970px) {  .container {  width: 940px;  } }  .container:after {  display : table;  content : " ";  clear : both; }  label {  font-weight: 900;  width: 100px;  padding: 5px 10px 5px 0;  display:inline-block;  text-align: right;  color: #000; }  .container > div {  padding: 7px 0;  margin: 5px 0;  text-align: center; }  .container > div:first-child {  border-top: 0 none; }  select {  width: 350px;  background: #fff url("img/arrow_down.png") no-repeat 98% center;  -webkit-appearance: none;  -moz-appearance: none;  text-indent: 1px;  text-overflow: '';  padding: 7px;  border: 1px solid #e8e8e8;  -webkit-border-radius: 6px;  -moz-border-radius: 6px;  border-radius: 6px; }  @media (max-width:668px) {  select {  width: 100%;  }   label{  width: 100%;  text-align: left;  } }  option {  color: #000; }  select:required:invalid {  color: #a9a9a9; }  *::-webkit-input-placeholder {  color: #a9a9a9; }  *:-moz-placeholder {  color: #a9a9a9; }  *::-moz-placeholder {  color: #a9a9a9; }  *:-ms-input-placeholder {  color: #a9a9a9;  } 
<?php  $db_host = "localhost"; $db_user = "root"; $db_password = ""; $db_base = "dbname";  $link = mysql_connect($db_host, $db_user, $db_password) or die("Ошибка соединения: " . mysql_error()); mysql_select_db($db_base);  mysql_set_charset('utf8',$link);  ?> 
<?php  if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {   require_once("db.php");   $result = mysql_query("SELECT * FROM region WHERE `country_id`='".$_POST["country"]."' ");   echo"<option value=''>выберите регион</option>";  while ($row = mysql_fetch_array($result)) {  echo "<option value='".$row["id"]."'>".$row["name"]."</option>"; }  }  ?> 
<?php  if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {  require_once("db.php");   $result = mysql_query("SELECT * FROM city WHERE `region_id`='".$_POST["region"]."' ");   echo"<option value=''>выберите город</option>";  while ($row = mysql_fetch_array($result)) {  echo "<option value='".$row["id"]."'>".$row["name"]."</option>"; }  }  ?> 
$(document).ready(function () {  $('#sub_region').css('display', 'none'); $('#sub_city').css('display', 'none');  $("#get_country").change(function() { 		clearlist(); 		$('#sub_city').css('display', 'none');		 		var countryvalue = $("#get_country option:selected").val(); 		//if (countryvalue === '') {clearlist(); } 		if (countryvalue === '') {clearlist(); $('#sub_region').css('display', 'none'); } 		getarea(); 	}) //getarea(); //getcity();  function getarea() { 	var country_value = $("#get_country option:selected").val(); 	var p_id = $("#page_id").val(); 	var area = $("#get_region"); 	var getarea_value = area.val(); 	if (country_value === "") { 		area.attr("disabled",true); 	} else { 		area.attr("disabled",false); 		area.load('get_region.php',{country : country_value, page_id : p_id}); 		$('#sub_region').css('display', 'block'); 	} 	 	$("#get_region").change(function() { 		getcity();	 	}) 	 	 }  function getcity() { 	// var region_value = $("#region_id").val();  	var region_value = $("#get_region option:selected").val(); 	if(region_value == undefined) 	{ 		var region_value = $("#region_id").val(); 	} 	var p_id = $("#page_id").val(); 	var area = $("#get_city"); 	if (region_value === "") { 		area.attr("disabled",true); 		$('#sub_city').css('display', 'none'); 		$("#get_city").empty(); 	} else { 		area.attr("disabled",false); 		area.load('get_city.php',{region : region_value, page_id : p_id}); 		$('#sub_city').css('display', 'block'); 	} }  function clearlist() { 	$("#get_region").empty(); 	$("#get_city").empty();  }	   });	 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00";  /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */;   CREATE TABLE `city` (  `id` int(5) NOT NULL,  `region_id` int(5) NOT NULL,  `name` varchar(255) CHARACTER SET utf8 NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;  INSERT INTO `city` (`id`, `region_id`, `name`) VALUES (1, 1, 'Москва'), (2, 1, 'Абрамцево'), (3, 1, 'Алабино'), (4, 1, 'Апрелевка'), (5, 1, 'Архангельское'), (6, 2, 'Санкт-Петербург'), (7, 2, 'Александровская'), (8, 3, 'Винница'), (9, 3, 'Гайсин'), (10, 4, 'Белгород-Днестровский'), (11, 4, 'Одесса'), (12, 5, 'Минск'), (13, 5, 'Борисов'), (14, 6, 'Бобруйск'), (15, 6, 'Могилев');  CREATE TABLE `country` (  `id` int(5) NOT NULL,  `name` varchar(255) CHARACTER SET utf8 NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;  INSERT INTO `country` (`id`, `name`) VALUES (1, 'Россия'), (2, 'Украина'), (3, 'Беларусь');  CREATE TABLE `region` (  `id` int(5) NOT NULL,  `country_id` int(5) NOT NULL,  `name` varchar(255) CHARACTER SET utf8 NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;  INSERT INTO `region` (`id`, `country_id`, `name`) VALUES (1, 1, 'Москва и Московская область'), (2, 1, 'Санкт-Петербург и область'), (3, 2, 'Виницкая область'), (4, 2, 'Одесская область'), (5, 3, 'Минская область'), (6, 3, 'Могилевская область');   ALTER TABLE `city`  ADD PRIMARY KEY (`id`);  ALTER TABLE `country`  ADD PRIMARY KEY (`id`);  ALTER TABLE `region`  ADD PRIMARY KEY (`id`);   ALTER TABLE `city`  MODIFY `id` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16; ALTER TABLE `country`  MODIFY `id` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; ALTER TABLE `region`  MODIFY `id` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 

bhtml.ru

When the database has some records in it, you can retrieve the stored information with the SELECT statement.
A SELECT query returns rows selected from one or more tables.

  — Syntax:

SELECT column_name(s) FROM table_name

— «column_name(s)» — is the name of the column (or columns) you want to select.
To select multiple columns, add them separated by a comma:
                SELECT column1, column2, column3 FROM table_name
To sellect all columns, just put an asterisk (*):
                SELECT * FROM table_name

To send the SQL statement to the MySQL database and retrieve the data returned, use the query() method of the mysqli object.
When is used with SELECT queries, this method returns a result object that stores the rows of data, or False on error.
To provide one row of data at a time, you can use a method of the result object called fetch_assoc.
The fetch_assoc() method returns an associative array that corresponds to the fetched row, the keys of the elements are the name of the columns. With a while() loop we can get the data of each row stored in that array.
To get the numbers of rows returned by a SELECT query, use the num_rows method, applied to the result object.

  — The fallowing example selects and displays the data stored in the «id», «name» and «pass» columns in the «users» table.

 <?php // connect to the "tests" database $conn = new mysqli('localhost', 'root', 'pass', 'tests');  // check connection if (mysqli_connect_errno()) {  exit('Connect failed: '. mysqli_connect_error()); }  // SELECT sql query $sql = "SELECT `id`, `name`, `pass` FROM `users`";   // perform the query and store the result $result = $conn->query($sql);  // if the $result contains at least one row if ($result->num_rows > 0) {  // output data of each row from $result  while($row = $result->fetch_assoc()) {  echo '<br /> id: '. $row['id']. ' - name: '. $row['name']. ' - pass: '. $row['pass'];  } } else {  echo '0 results'; }  $conn->close(); ?> 

— This example stores the data (the result object) returned by the query() method in the $result variable, uses the «num_rows» method to check if $result contains at least one row. Then, with a while() loop loops through all the records in the result object, using the «fetch_assoc()» method to store the data of each row in an Array in the $row variable.
Each call to fetch_assoc() returns the next row in the recordset.
To print the value of each row, we use the PHP $row variable and the key of each column ($row[‘id’], …).
The code above will output:

The asterisk (*) can be used to select all column: «SELECT * FROM table_name», but is better to be explicit about which columns are selected. The selecting process can be faster if only the columns you will use are fetched.

The LIMIT option

With the LIMIT option you can determine the number of records that MySQL will return.
  — Syntax:

SELECT column_names FROM table_name LIMIT skip_count, show_count

«skip_count» is optional, it tells the database how many rows to skip from results.
«show_count» sets the maximum number of records to return.
  — Example:

 <?php // connect to the "tests" database $conn = new mysqli('localhost', 'root', 'pass', 'tests');  // check connection if (mysqli_connect_errno()) {  exit('Connect failed: '. mysqli_connect_error()); }  // SELECT sql query $sql = "SELECT `id`, `name`, `pass` FROM `users` LIMIT 2";   // perform the query and store the result $result = $conn->query($sql);  // if the $result contains at least one row if ($result->num_rows > 0) {  // output data of each row from $result  while($row = $result->fetch_assoc()) {  echo '<br /> id: '. $row['id']. ' - name: '. $row['name']. ' - pass: '. $row['pass'];  } } else {  echo '0 results'; }  $conn->close(); ?> 

The «LIMIT 2» option tells MySQL to return only the firs 2 rows in result.
This example will output:

ORDER BY

ORDER BY specifies the sort order of the results.
  — Syntax:

SELECT column_names FROM table_name ORDER BY col_name ASC|DESC

«col_name» can be a single column, a comma separated list of columns, or an expression such as RAND(), which randomizes the order.
When ordering by more than one column, the second column is only used if the values in the first column are equal.
The default sort order is ascending (ASC) (a–z, 0–9), and ASC option can be omitted. DESC (descending) reverses the order.
  — Example:

 <?php // connect to the "tests" database $conn = new mysqli('localhost', 'root', 'pass', 'tests');  // check connection if (mysqli_connect_errno()) {  exit('Connect failed: '. mysqli_connect_error()); }  // SELECT sql query $sql = "SELECT `id`, `name`, `pass` FROM `users` ORDER BY `name`";   // perform the query and store the result $result = $conn->query($sql);  // if the $result contains at least one row if ($result->num_rows > 0) {  // output data of each row from $result  while($row = $result->fetch_assoc()) {  echo '<br /> id: '. $row['id']. ' - name: '. $row['name']. ' - pass: '. $row['pass'];  } } else {  echo '0 results'; }  $conn->close(); ?> 

— This code selects all the data stored in the «users» table, and sorts the result in alphabetical order by the «name» column.
This example above will output:
• You can use ORDER BY with LIMIT option.
                Example:       «SELECT `id`, `name`, `pass` FROM `users` ORDER BY `name` LIMIT 2»

• To eliminate duplicate rows from the results, use the DISTINCT option:
               

SELECT DISTINCT column_names FROM table_name

— If you want to learn how to select values from two MySQL tables with a single query, see the tutorial: Select in two MySQL tables.

coursesweb.net

<?php
echo "<table style=’border: solid 1px black;’>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";

class TableRows extends RecursiveIteratorIterator {
    function __construct($it) {
        parent::__construct($it, self::LEAVES_ONLY);
    }

    function current() {
        return "<td style=’width:150px;border:1px solid black;’>" . parent::current(). "</td>";
    }

    function beginChildren() {
        echo "<tr>";
    }

    function endChildren() {
        echo "</tr>" . "n";
    }
}

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
    $stmt->execute();

    // set the resulting array to associative
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
        echo $v;
    }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>

www.w3schools.com

Обработка select в PHP

От автора: приветствую вас друзья. Из этой статьи вы узнаете, как произвести обработку select в PHP, как сгенерировать список select с помощью PHP и вывести выпадающий список формы. Приступим?

Исходные файлы текущей статьи вы можете скачать по ссылке.

Итак, давайте создадим простейший выпадающий список из нескольких стран:

Вот такой список мы получили.

Select php

Попробуем теперь выбрать страну и получить данные на сервере. Сделать это крайне просто. Данные отправляются методом POST и страна будет доступна в одноименном массиве, который можно распечатать в обработчике:

Select php

Достаточно просто. Хорошо, а что если мы хотим дать возможность пользователю выбрать несколько стран из списка select? Это можно сделать, добавив тегу select атрибут multiple:

Select php

Теперь можно выбрать несколько стран, зажимая клавишу Ctrl. Попробуем выбрать несколько стран и отправить форму. Я выберу первые две страны. Однако в результате я получу только вторую страну. Куда же делать еще одна? Для того, чтобы мы могли отправить более одного значения, необходимо немного изменить атрибут name списка select. А именно, мы должны указать, что значением данного списка может быть не одно значение, а массив значений. Делается это так:

Мы добавили квадратные скобки к имени поля. Эти скобки как раз сделают возможным сохранить более одного значения. Теперь данные на сервере будут выглядеть так:

Select php

Достаточно просто, не так ли? Ну и последний вопрос, который мы рассмотрим, это генерирования списка select с помощью PHP. Зачем это нужно? Смотрите, сейчас мы выводим список стран вручную. Если стран немного, это не составит больших неудобств. Однако, если мы решим сформировать список из сотен стран, тогда это будет проблемой. Гораздо проще сформировать такой список программно, буквально несколькими строками кода. Страны будут храниться в базе данных, откуда нам останется их получить и вывести в цикле.

Чтобы упростить пример, мы вместо стран сформируем список с годами. Такой список может пригодиться, если мы создаем форму регистрации и нам необходим выпадающий список с годами. Скажем, это будет список, начиная с 1900 до текущего года. Задача решается в несколько строк кода:

Здесь все достаточно просто. Мы запускаем цикл, начиная с 1900 и заканчивая текущим годом, который вернет функция date(). В результате мы получим искомый список с годами:

Select php

Вот так вот просто мы можем осуществить вывод списка select, используя PHP. Ну а на этом текущую статью мы завершаем. Дополнительно по работе с формами вы можете посмотреть этот урок. Удачи!

Select php

webformyself.com

<?php
// This could be supplied by a user, for example
$firstname 'fred';
$lastname  'fox';

// Formulate Query
// This is the best way to perform an SQL query
// For more examples, see mysql_real_escape_string()
$query sprintf("SELECT firstname, lastname, address, age FROM friends 
    WHERE firstname='%s' AND lastname='%s'"
,
    
mysql_real_escape_string($firstname),
    
mysql_real_escape_string($lastname));

// Perform Query
$result mysql_query($query);

// Check result
// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if (!$result) {
    
$message  'Invalid query: ' mysql_error() . "n";
    
$message .= 'Whole query: ' $query;
    die(
$message);
}

// Use result
// Attempting to print $result won't allow access to information in the resource
// One of the mysql result functions must be used
// See also mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($row mysql_fetch_assoc($result)) {
    echo 
$row['firstname'];
    echo 
$row['lastname'];
    echo 
$row['address'];
    echo 
$row['age'];
}

// Free the resources associated with the result set
// This is done automatically at the end of the script
mysql_free_result($result);
?>

php.net


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.