it-swarm.com.ru

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

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

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

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

SELECT names FROM Customers

а затем использовать 

mysql_fetch_array

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

27
Gbert90

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

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

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

$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
Krijn Toet

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

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

function displayAllRecords($serverName, $userName, $password, $databaseName,$sqlQuery='')
{
    $databaseConnectionQuery =  mysqli_connect($serverName, $userName, $password, $databaseName);
    if($databaseConnectionQuery === false)
    {
        die("ERROR: Could not connect. " . mysqli_connect_error());
        return false;
    }

    $resultQuery = mysqli_query($databaseConnectionQuery,$sqlQuery);
    $fetchFields = mysqli_fetch_fields($resultQuery);
    $fetchValues = mysqli_fetch_fields($resultQuery);

    if (mysqli_num_rows($resultQuery) > 0) 
    {           

        echo "<table class='table'>";
        echo "<tr>";
        foreach ($fetchFields as $fetchedField)
         {          
            echo "<td>";
            echo "<b>" . $fetchedField->name . "<b></a>";
            echo "</td>";
        }       
        echo "</tr>";
        while($totalRows = mysqli_fetch_array($resultQuery)) 
        {           
            echo "<tr>";                                
            for($eachRecord = 0; $eachRecord < count($fetchValues);$eachRecord++)
            {           
                echo "<td>";
                echo $totalRows[$eachRecord];
                echo "</td>";               
            }
            echo "<td><a href=''><button>Edit</button></a></td>";
            echo "<td><a href=''><button>Delete</button></a></td>";
            echo "</tr>";           
        } 
        echo "</table>";        

    } 
    else
    {
      echo "No Records Found in";
    }
}

Все установлено сейчас Передать аргументы как для Example

$ queryStatment = "SELECT * From USERS"; $ testing = displayAllRecords ('localhost', 'root', 'root @ 123', 'email', $ queryStatment); echo $ testing;

Вот 

localhost указывает Имя Host,

root указывает имя пользователя для database

[email protected] указывает password for the database

$queryStatment для generating Query

надеюсь, поможет

0
Manojkiran.A

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