Logo SNS - Web et Informatique

SNS - Web et Informatique

Lundi 11 Décembre 2017
06 25 23 34 56
12150, Sévérac-le-Château
 08h00/23h00 - 7j/7
Être rappelé
Récupérer le résultat d'une requête SQL dans un tableau(Array) en PHP

Récupérer le résultat d'une requête SQL dans un tableau(Array) en PHP

Publié le .

Il est parfois utile de récupérer le résultat d'une requête SQL dans un tableau (Array) pour un traitement de comparaison par exemple ou tout autre application. Pour cet exemple je vais me servir de PDO pour récupérer un ensemble de données dans une base de donnée et je vais les stocker dans un tableau à l'aide d'une boucle while.

<?php
// Connexion à la base de donnée
$host = "localhost";
$nomBDD = "resa";
$userBDD = "root";
$passwordBDD = "password";

$dataBASE = new PDO('mysql:host='.$host.';dbname='.$nomBDD.';charset=utf8', $userBDD, $passwordBDD, array( PDO::ATTR_PERSISTENT => false));

// Je peux maintenant effectuer des requêtes préparées depuis l'objet $dataBASE
// Préparation ...
// exemple avec une réservation de chambre d'hotel (room)
// date_start = début du séjour, date_end = fin du séjour
$request = $dataBASE->prepare('SELECT date_start, date_end FROM room ORDER BY date_deb' );
// ... Exécution !
$request ->execute();

// on initialise 2 tableaux un pour date_start, l'autre pour date_end
$table_start = array();
$table_end = array();

// On effectue une boucle à l'aide d'un while qui va stocker
// les données issues de la base dans les deux tableaux respectifs

while ($data = $request->fetch() )
{
// stocke toutes les dates de début de séjour
$table_start[] = $data['date_start'];

// stocke toutes les dates de ... fin de séjour !
$table_end[] = $data['date_end'];
}
// on va se servir des tableaux pour afficher toutes les réservations
// on va compter le nombre de séjours différents
$number = $request->rowCount();

// il ne reste plus qu'à boucler pour afficher les périodes louées
for ($i=0; $i<$number; $i++)
{
echo 'Séjour numéro '.($i+1).' du '.$table_start[$i].' au '.$table_end[$i].' inclus.<br>';
// le ($i+1) affiche séjour n°1, n°2 etc ...
}

// Résultat :
// Séjour numéro 1 du 02-02-2016 au 05-02-2016
// Séjour numéro 2 du 07-02-2016 au 10-02-2016
// Séjour numéro 3 du 15-02-2016 au 16-02-2016, etc ...

?>

Ceci est une exemple tout à fait théorique,
on peut afficher ce genre de liste facilement
juste en SQL ce n'est là qu'un exemple.
On peut quand même s'en servir pour matcher si une
date demandée par un client est libre ou pas.

SNS - Web & Informatique | www.sns.pm | 2013 - 2017