如何使用PHP获取列中的所有值?

时间:2011-03-08 07:16:28

标签: php mysql arrays

我一直在寻找这个,但仍然无法找到解决方案:如何从mySQL列中获取所有值并将它们存储在数组中?

例如:  表名:客户  列名:ID,名称  行数:5

我想得到这个表中所有5个名字的数组。我该怎么做呢?我正在使用PHP,我试图只是:

SELECT names FROM Customers

然后使用

mysql_fetch_array

用于将这些值存储在数组中的PHP函数。

7 个答案:

答案 0 :(得分:28)

  

请注意,这个答案已经过时了!从PHP7开始,mysql扩展已不再可用。如果你想在PHP7中使用旧的mysql函数,you will have to compile ext/mysql from 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.

答案 1 :(得分:28)

以下是使用PDOmysqli

执行此操作的简单方法
$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
)

答案 2 :(得分:4)

我会使用mysqli连接来连接数据库。这是一个例子:

$connection = new mysqli("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'方法打印数组,这样你就可以看到它一切正常。我希望这很有帮助。

答案 3 :(得分:1)

由于不推荐使用 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);

答案 4 :(得分:0)

How to put MySQL functions back into PHP 7
第1步

首先获取3月删除的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扩展。

Reference

您可以使用MYSQL的MYSQL替代方式

*

<?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);
?> 

答案 5 :(得分:0)

第一件事是,这仅适用于高级开发人员,如果您正在核心php中使用大型项目​​,那么现在都是php新手就不要使用此功能

var urlLineChartRegion = '@Url.Action("LineChartRegion")';
$('.line-chart-region-statss').load(urlLineChartRegion, "",
        function (responseText, textStatus, XMLHttpRequest) {
            if (textStatus == 'success') {
                $('.loading-sec-line-chart-region-stats').hide();
            }
        });

所有已设置的参数作为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"; } }

$ queryStatment =“选择*来自用户”; $ testing = displayAllRecords('localhost','root','root @ 123','email',$ queryStatment); echo $ testing;

这里

Example表示localhost的名称,

host表示root的用户名

database表示root@123

password for the database for $queryStatment

希望有帮助

答案 6 :(得分:0)

PHP 5> = 5.5.0,PHP 7

在结果数组上使用array_column

$column = array_column($result, 'names');