Подтвердить что ты не робот

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

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

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

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

SELECT names FROM Customers

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

mysql_fetch_array

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

4b9b3361

Ответ 1

Обратите внимание, что этот ответ устарел! Расширение 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.

Ответ 2

Вот простой способ сделать это, используя 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
)

Ответ 3

Я бы использовал соединение 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", чтобы вы могли видеть, как все это работает. Я надеюсь, что это было полезно.

Ответ 4

Так как 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);

Ответ 5

Как вернуть функции 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);
?>