it-swarm.com.de

Wie bekomme ich alle Werte in einer Spalte mit PHP?

Ich habe überall danach gesucht, aber immer noch keine Lösung gefunden: Wie bekomme ich alle Werte aus einer mySQL-Spalte und speichere sie in einem Array?

Zum Beispiel: Tabellenname: Kunden Spaltennamen: ID, Name Anzahl der Reihen: 5

Ich möchte ein Array aller 5 Namen in dieser Tabelle erhalten. Wie mache ich das? Ich verwende PHP und versuchte nur:

SELECT names FROM Customers

und dann die 

mysql_fetch_array

PHP-Funktion zum Speichern dieser Werte in einem Array.

27
Gbert90

Beachten Sie, dass diese Antwort veraltet ist! Die mysql-Erweiterung ist ab PHP7 nicht mehr standardmäßig verfügbar. Wenn Sie die alten mysql-Funktionen in PHP7 verwenden möchten, müssen Sie ext/mysql aus PECL kompilieren. Weitere Antworten finden Sie in den anderen Antworten.


Das würde funktionieren, siehe weitere Dokumentation hier: http://php.net/manual/de/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

Hier ist eine einfache Möglichkeit, dies zu tun, indem Sie entweder PDO oder mysqli verwenden.

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

oder mit 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

Ich würde eine Mysqli-Verbindung verwenden, um eine Verbindung zur Datenbank herzustellen. Hier ist ein Beispiel:

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

Im nächsten Schritt wählen Sie die Informationen aus. In deinem Fall würde ich tun:

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

Und zum Schluss erstellen wir aus all diesen Namen ein Array, indem wir Folgendes eingeben:

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

print_r($array);

Was ich in diesem Code getan habe: Ich habe alle Namen aus der Tabelle mit einer Mysql-Abfrage ausgewählt. Als nächstes verwende ich eine while-Schleife, um zu prüfen, ob die $ -Anfrage einen nächsten Wert hat. Wenn ja, fährt die while-Schleife fort und fügt diesen Wert zum Array '$ array' hinzu. Sonst stoppt die Schleife. Und zum Schluss drucke ich das Array mit der Methode 'print_r', damit Sie sehen können, dass alles funktioniert. Ich hoffe das war hilfreich.

4
Krijn Toet

Da mysql_ * nicht mehr empfohlen wird, verwenden wir hier die Lösung mit 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

Es gibt eine andere Möglichkeit, dies mitPDOzu tun.

  $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

Das Erste ist, dass dies nur für fortgeschrittene Entwickler ist, die nun alle PHP-Anfänger sind. Verwenden Sie diese Funktion nicht, wenn Sie ein großes Projekt in Core PHP verwenden, das diese Funktion verwendet

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";
    }
}

All set now Übergeben Sie die Argumente als Für Example

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

Hier 

localhost gibt den Namen der Host an,

root gibt den Benutzernamen für database an.

[email protected] gibt den password for the database an

$queryStatment für generating Query

ich hoffe es hilft

0
Manojkiran.A

Wie setzt man MySQL-Funktionen wieder in PHP 7
Schritt 1

Holen Sie sich zuerst die Mysql-Erweiterungsquelle, die im März entfernt wurde:

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

Schritt 2

Bearbeiten Sie dann Ihre php.ini

Fügen Sie entweder im Abschnitt "Erweiterungen" oder "MySQL" die folgende Zeile hinzu:

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

Schritt 3

Restart PHP und mysql_ * -Funktionen sollten jetzt wieder funktionieren. 

Schritt 4

Deaktivieren Sie alle veralteten Warnungen einschließlich mysql_ *:

error_reporting(E_ALL ^ E_DEPRECATED);

Jetzt unter Code helfen Ihnen:

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

Sie können auch alle Werte in der Spalte abrufen, indem Sie mysql_fetch_assoc verwenden.

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

Diese Erweiterung wurde in PHP 5.5.0 nicht mehr unterstützt und in PHP 7.0.0 entfernt. Stattdessen sollte die Erweiterung MySQLi oder PDO_MySQL verwendet werden. 

Referenz


SIE KÖNNEN MYSQLI ALTERNATIVE VON MYSQL EASY WAY VERWENDEN


*

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