Как получить все значения в столбце с помощью PHP?

Я искал это везде, но все равно не могу найти решение. Как получить все значения из столбца mySQL и сохранить их в массиве?

Например: Имя таблицы: Клиенты Имена столбцов: Идентификатор, Имя Количество строк: 5

Я хочу получить массив из всех 5 имен в этой таблице. Как мне это сделать? Я использую PHP, и я пытался просто:

SELECT names FROM Customers 

и затем используйте

 mysql_fetch_array 

Функция PHP для хранения этих значений в массиве.

Related of "Как получить все значения в столбце с помощью PHP?"

Обратите внимание, что этот ответ устарел! Расширение mysql больше не доступно из коробки с PHP7. Если вы хотите использовать старые функции mysql в PHP7, вам придется скомпилировать ext / mysql из PECL. См. Другие ответы для более современных решений.


Это будет работать, см. Дополнительную документацию здесь: http://php.net/manual/en/function.mysql-fetch-array.php

 $result = mysql_query("SELECT names FROM Customers"); $storeArray = Array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $storeArray[] = $row['names']; } // now $storeArray will have all the names. 

Вот простой способ сделать это, используя PDO или mysqli

 $stmt = $pdo->prepare("SELECT Column FROM foo"); // careful, without a LIMIT this can take long if your table is huge $stmt->execute(); $array = $stmt->fetchAll(PDO::FETCH_COLUMN); print_r($array); 

или, используя mysqli

 $stmt = $mysqli->prepare("SELECT Column FROM foo"); $stmt->execute(); $array = []; foreach ($stmt->get_result() as $row) { $array[] = $row['column']; } print_r($array); 

 Array ( [0] => 7960 [1] => 7972 [2] => 8028 [3] => 8082 [4] => 8233 ) 

Я бы использовал соединение mysqli для подключения к базе данных. Вот пример:

 $connection = new mysql("127.0.0.1", "username", "password", "database_name", 3306); 

Следующим шагом будет выбор информации. В вашем случае я бы сделал:

 $query = $connection->query("SELECT `names` FROM `Customers`;"); 

И, наконец, мы создаем массив из всех этих имен, набрав:

 $array = Array(); while($result = $query->fetch_assoc()){ $array[] = $result['names']; } print_r($array); 

Итак, что я сделал в этом коде: я выбрал все имена из таблицы, используя запрос mysql. Затем я использую цикл while, чтобы проверить, имеет ли следующий запрос $ query следующее значение. Если это так, цикл while продолжается и добавляет это значение к массиву '$ array'. Иначе цикл останавливается. И, наконец, я печатаю массив, используя метод «print_r», чтобы вы могли видеть, как все это работает. Я надеюсь, что это было полезно.

Поскольку mysql_ * устарели, так что вот решение с использованием mysqli .

 $mysqli = new mysqli('host', 'username', 'password', 'database'); if($mysqli->connect_errno>0) { die("Connection to MySQL-server failed!"); } $resultArr = array();//to store results //to execute query $executingFetchQuery = $mysqli->query("SELECT `name` FROM customers WHERE 1"); if($executingFetchQuery) { while($arr = $executingFetchQuery->fetch_assoc()) { $resultArr[] = $arr['name'];//storing values into an array } } print_r($resultArr);//print the rows returned by query, containing specified columns 

Существует еще один способ сделать это с помощью PDO

  $db = new PDO('mysql:host=host_name;dbname=db_name', 'username', 'password'); //to establish a connection //to fetch records $fetchD = $db->prepare("SELECT `name` FROM customers WHERE 1"); $fetchD->execute();//executing the query $resultArr = array();//to store results while($row = $fetchD->fetch()) { $resultArr[] = $row['name']; } print_r($resultArr); 

Как вернуть функции MySQL в PHP 7
Шаг 1

Сначала получите источник расширения mysql, который был удален в марте:

https://github.com/php/php-src/tree/PRE_PHP7_EREG_MYSQL_REMOVALS/ext/mysql

Шаг 2

Затем отредактируйте свой php.ini

Где-то в разделе «Расширения» или «MySQL» просто добавьте эту строку:

 extension = /usr/local/lib/php/extensions/no-debug-non-zts-20141001/mysql.so 

Шаг 3

Перезапустить функции PHP и mysql_ * теперь должны работать снова.

Шаг 4

Выключите все устаревшие предупреждения, включая их из mysql_ *:

 error_reporting(E_ALL ^ E_DEPRECATED); 

Теперь ниже кода вам помогут:

 $result = mysql_query("SELECT names FROM Customers"); $Data= Array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $Data[] = $row['names']; } 

Вы также можете получить все значения в столбце, используя mysql_fetch_assoc

 $result = mysql_query("SELECT names FROM Customers"); $Data= Array(); while ($row = mysql_fetch_assoc($result)) { $Data[] = $row['names']; } 

Это расширение было устарело в PHP 5.5.0, и оно было удалено в PHP 7.0.0. Вместо этого следует использовать расширение MySQLi или PDO_MySQL.

Справка


ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ MYSQLI АЛЬТЕРНАТИВЫ MYSQL EASY WAY


*

 <?php $con=mysqli_connect("localhost","my_user","my_password","my_db"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname"; $result=mysqli_query($con,$sql); // Numeric array $row=mysqli_fetch_array($result,MYSQLI_NUM); printf ("%s (%s)\n",$row[0],$row[1]); // Associative array $row=mysqli_fetch_array($result,MYSQLI_ASSOC); printf ("%s (%s)\n",$row["Lastname"],$row["Age"]); // Free result set mysqli_free_result($result); mysqli_close($con); ?>