J'ai cherché cela partout, mais je ne trouve toujours pas de solution: comment obtenir toutes les valeurs d'une colonne mySQL et les stocker dans un tableau?
Par exemple: Nom de la table: Clients Noms de colonnes: ID, Nom # de rangées: 5
Je veux obtenir un tableau de tous les 5 noms dans ce tableau. Comment je fais pour faire ça? J'utilise PHP et j'essayais simplement de:
SELECT names FROM Customers
et ensuite utiliser le
mysql_fetch_array
Fonction PHP pour stocker ces valeurs dans un tableau.
Notez que cette réponse est obsolète! L'extension mysql n'est plus disponible telle quelle à partir de PHP7. Si vous voulez utiliser les anciennes fonctions mysql dans PHP7, vous devrez compiler ext/mysql à partir de PECL. Voir les autres réponses pour des solutions plus récentes.
Cela fonctionnerait, voir plus de documentation ici: 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.
Voici un moyen simple de faire cela en utilisant _ PDO ou 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);
ou, en utilisant 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
)
J'utiliserais une connexion mysqli pour me connecter à la base de données. Voici un exemple:
$connection = new mysql("127.0.0.1", "username", "password", "database_name", 3306);
L'étape suivante consiste à sélectionner les informations. Dans ton cas je ferais:
$query = $connection->query("SELECT `names` FROM `Customers`;");
Et finalement nous faisons un tableau à partir de tous ces noms en tapant:
$array = Array();
while($result = $query->fetch_assoc()){
$array[] = $result['names'];
}
print_r($array);
Donc, ce que j'ai fait dans ce code: J'ai sélectionné tous les noms de la table en utilisant une requête mysql. Ensuite, j'utilise une boucle while pour vérifier si la requête $ a une valeur suivante. Si c'est le cas, la boucle while continue et ajoute cette valeur au tableau '$ array'. Sinon la boucle s'arrête. Et enfin, j'imprime le tableau en utilisant la méthode 'print_r' afin que vous puissiez voir que tout fonctionne. J'espère que cela a été utile.
Puisque mysql_ * sont obsolètes, voici la solution utilisant 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
Il existe un autre moyen de faire cela en utilisantPDO
$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);
Tout d’abord, c’est uniquement pour les développeurs avancés. Ceux qui sont tous débutants en php n’utilisent pas cette fonction si vous utilisez un énorme projet dans le noyau php, utilisez cette fonction.
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";
}
}
Tout est maintenant défini. Passez les arguments comme pour Example
$ queryStatment = "SELECT * From USERS"; $ testing = displayAllRecords ('hôte local', 'racine', 'racine @ 123', 'email', $ queryStatment);
Ici
localhost
indique le nom de la Host
,
root
indique le nom d'utilisateur pour database
root@123
indique le password for the database
$queryStatment
pour generating Query
j'espère que ça aide
Comment rétablir les fonctions MySQL dans PHP 7
Étape 1
Commencez par récupérer la source d’extension mysql qui a été supprimée en mars:
https://github.com/php/php-src/tree/PRE_PHP7_EREG_MYSQL_REMOVALS/ext/mysql
Étape 2
Puis éditez votre php.ini
Quelque part dans la section "Extensions" ou "MySQL", ajoutez simplement cette ligne:
extension = /usr/local/lib/php/extensions/no-debug-non-zts-20141001/mysql.so
Étape 3
Les fonctions de redémarrage PHP et de mysql_ * devraient maintenant fonctionner à nouveau.
Étape 4
Désactivez tous les avertissements obsolètes, y compris ceux de mysql_ *:
error_reporting(E_ALL ^ E_DEPRECATED);
Maintenant, le code ci-dessous vous aide:
$result = mysql_query("SELECT names FROM Customers");
$Data= Array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$Data[] = $row['names'];
}
Vous pouvez également obtenir toutes les valeurs dans la colonne en utilisant mysql_fetch_assoc
$result = mysql_query("SELECT names FROM Customers");
$Data= Array();
while ($row = mysql_fetch_assoc($result))
{
$Data[] = $row['names'];
}
Cette extension était obsolète dans PHP 5.5.0 et supprimée dans PHP 7.0.0. À la place, vous devez utiliser l’extension MySQLi ou PDO_MySQL.
VOUS POUVEZ UTILISER MYSQLI ALTERNATIVE OF 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);
?>