La première chose qui me vient à l'esprit c'est d'utiliser Twig afin de séparer ta partie traitement des données et la partie d'affichage =>
http://twig.sensiolabs.org/
Cela va rendre ton code beaucoup plus clair et flexible, c'est réellement important pour n'importe quel projet.
Donc il faut que tu
installes composer les informations sont sur cette page
https://getcomposer.org/download/
mais en gros tu
ouvres ton invite de commande à
l'emplacement de ton projet, tu copie-colle ci-dessus
Code : Tout sélectionner
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'aa96f26c2b67226a324c27919f1eb05f21c248b987e6195cad9690d5c1ff713d53020a02ac8c217dbf90a7eacc9d141d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
et n'oublie pas d'exécuter la dernière ligne.
Ensuite il faut suivre les instructions ici
http://twig.sensiolabs.org/doc/installation.html donc
dans la même console tu tapes :
Cette commande va télécharger
Twig et le déplacer dans le dossier
vendor.
A présent
Twig est installé dans tes sources.
Qu'est ce que Twig ? C'est un moteur de templates, donc au lieu de mélanger php et HTML, Twig donne la possibilité de pouvoir injecter des variables afin des les évaluer, traiter et afficher dans un contenu HTML.
Retour à ton projet.
Tu as
formulaire.php qui affiche de les 30 premières lignes de ta base
table_bureau
On peut donc l'éditer de cette manière :
formulaire.php
require_once 'vendor/autoload.php'; // Modifie l'emplacement en fonction de l'emplacement de ton fichier par rapport au dossier vendor
$loader = new Twig_Loader_Filesystem('vues'); // Ici on défini le ( ou les ) dossier(s) contenant les templates. Ici le dossier vues.
$twig = new Twig_Environment($loader)); // Ici on créer l'instance de l'objet Twig qui va servir à générer une templates.
// Maintenant que Twig est initialisé on effectue les actions tel que : récupérer les 30 premières lignes de ta base et les définir dans une seul variable de type array soit un tableau ensuite les afficher.
try
{
include('./connexion.php');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$a_Tables = array();
$req = $bdd->query('SELECT * FROM table_bureau LIMIT 0, 29');
while ($donnees = $req->fetch())
{
$a_Tables[] = $donnees;
}
$req->closeCursor();
// Maintenant que $a_Tables contient les différentes lignes , nos actions sont terminer. On peut maintenant afficher le contenu souhaité c'est à dire, le tableau du Bureau
/**
Exemple du contenu de la variable $a_Tables :
$a_Tables[0]['id'] = 1
$a_Tables[0]['nom_prenom'] = Pierre Dugou
$a_Tables[0]['bureau'] = 11
$a_Tables[1]['id'] = 2
$a_Tables[1]['nom_prenom'] = Ralph VW
$a_Tables[1]['bureau'] = 12
....
$a_Tables[29]['id'] = ...
$a_Tables[29]['nom_prenom'] = ...
$a_Tables[29]['bureau'] = ...
**/
echo $twig->render(
'formulaire.twig.html',
array(
'Tables' => $a_Tables
)
);
// Ici on affiche l'évaluation de la fonction render de l'instance twig via le fichier formulaire.twig.html en injectant la variable $a_Tables alias Tables
Il faut maintenant
créer la vue Twig. Donc préalablement créer le dossier vues à la racine du projet (au même niveau que le dossier vendor)
vues/formulaire.twig.html
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Formulaire</title>
</head>
<body>
<table>
<form action="upload.php" method="post" enctype="multipart/form-data">
<fieldset>
<caption>Tableau du Bureau</caption>
<tr>
<td class= "titre_col1">Non Prénom</td>
<td class= "titre_col1">Bureau</td>
</tr>
{% for Table in Tables %}
<input type="hidden" name="id[]" value="{{ Table.id }}">
<tr>
<td>
<input type="text" name="nom_prenom[]" value="{{ Table.nom_prenom }}"/>
</td>
<td>
<input type="text" name="bureau[]" value="{{ Table.bureau }}"/>
</td>
</tr>
{% endfor %}
<tr>
<td colspan="2"><br/>
<input type="submit" name="sub" value="Modifier !">
</td>
</tr>
</fieldset>
</form>
</table>
</body>
</html>
A présent il faut s'attaquer au fichier upload.php je te laisse cette partie là.
Pense à vérifier que $_POST['id'] $_POST['bureau'] et $_POST['nom_prenom'] existent et qu'ils contiennent le même nombre de lignes. Que l'id est bien numérique etc ...
Je te ré-invite à aller sur
http://twig.sensiolabs.org/ afin de bien comprendre le fonctionnement de Twig.
Je t'invite également à aller voir les documentations sur les classes et les objets de php.
http://php.net/manual/fr/oop4.php
En espèrent t'avoir aidé en te donnant un exemple pour séparer le code à traiter et celui à afficher. Ceci n'est pas la manière de procéder par excellence ! Il y a une infinité, je t'en remets simplement un exemple. Si il y a des points pas très clair n'hésite pas à demander.
La première chose qui me vient à l'esprit c'est d'utiliser Twig afin de séparer ta partie traitement des données et la partie d'affichage => [url]http://twig.sensiolabs.org/[/url]
Cela va rendre ton code beaucoup plus clair et flexible, c'est réellement important pour n'importe quel projet.
Donc il faut que tu [b]installes composer[/b] les informations sont sur cette page [url]https://getcomposer.org/download/[/url]
mais en gros tu [b]ouvres ton invite de commande[/b] à [b]l'emplacement de ton projet[/b], tu copie-colle ci-dessus
[code]php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'aa96f26c2b67226a324c27919f1eb05f21c248b987e6195cad9690d5c1ff713d53020a02ac8c217dbf90a7eacc9d141d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"[/code]
et n'oublie pas d'exécuter la dernière ligne.
Ensuite il faut suivre les instructions ici [url]http://twig.sensiolabs.org/doc/installation.html[/url] donc [b]dans la même console[/b] tu tapes :
[code]php composer.phar require "twig/twig:~1.0"
[/code]
Cette commande va télécharger [b]Twig [/b] et le déplacer dans le dossier [b]vendor[/b].
A présent [b]Twig[/b] est installé dans tes sources.
[i]Qu'est ce que Twig ? [/i]C'est un moteur de templates, donc au lieu de mélanger php et HTML, Twig donne la possibilité de pouvoir injecter des variables afin des les évaluer, traiter et afficher dans un contenu HTML.
Retour à ton projet.
Tu as [b]formulaire.php[/b] qui affiche de les 30 premières lignes de ta base [i]table_bureau[/i]
On peut donc l'éditer de cette manière :
formulaire.php
[php]require_once 'vendor/autoload.php'; // Modifie l'emplacement en fonction de l'emplacement de ton fichier par rapport au dossier vendor
$loader = new Twig_Loader_Filesystem('vues'); // Ici on défini le ( ou les ) dossier(s) contenant les templates. Ici le dossier vues.
$twig = new Twig_Environment($loader)); // Ici on créer l'instance de l'objet Twig qui va servir à générer une templates.
// Maintenant que Twig est initialisé on effectue les actions tel que : récupérer les 30 premières lignes de ta base et les définir dans une seul variable de type array soit un tableau ensuite les afficher.
try
{
include('./connexion.php');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$a_Tables = array();
$req = $bdd->query('SELECT * FROM table_bureau LIMIT 0, 29');
while ($donnees = $req->fetch())
{
$a_Tables[] = $donnees;
}
$req->closeCursor();
// Maintenant que $a_Tables contient les différentes lignes , nos actions sont terminer. On peut maintenant afficher le contenu souhaité c'est à dire, le tableau du Bureau
/**
Exemple du contenu de la variable $a_Tables :
$a_Tables[0]['id'] = 1
$a_Tables[0]['nom_prenom'] = Pierre Dugou
$a_Tables[0]['bureau'] = 11
$a_Tables[1]['id'] = 2
$a_Tables[1]['nom_prenom'] = Ralph VW
$a_Tables[1]['bureau'] = 12
....
$a_Tables[29]['id'] = ...
$a_Tables[29]['nom_prenom'] = ...
$a_Tables[29]['bureau'] = ...
**/
echo $twig->render(
'formulaire.twig.html',
array(
'Tables' => $a_Tables
)
);
// Ici on affiche l'évaluation de la fonction render de l'instance twig via le fichier formulaire.twig.html en injectant la variable $a_Tables alias Tables[/php]
Il faut maintenant [b]créer la vue Twig[/b]. Donc préalablement créer le dossier vues à la racine du projet (au même niveau que le dossier vendor)
vues/formulaire.twig.html
[html]<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Formulaire</title>
</head>
<body>
<table>
<form action="upload.php" method="post" enctype="multipart/form-data">
<fieldset>
<caption>Tableau du Bureau</caption>
<tr>
<td class= "titre_col1">Non Prénom</td>
<td class= "titre_col1">Bureau</td>
</tr>
{% for Table in Tables %}
<input type="hidden" name="id[]" value="{{ Table.id }}">
<tr>
<td>
<input type="text" name="nom_prenom[]" value="{{ Table.nom_prenom }}"/>
</td>
<td>
<input type="text" name="bureau[]" value="{{ Table.bureau }}"/>
</td>
</tr>
{% endfor %}
<tr>
<td colspan="2"><br/>
<input type="submit" name="sub" value="Modifier !">
</td>
</tr>
</fieldset>
</form>
</table>
</body>
</html>[/html]
A présent il faut s'attaquer au fichier upload.php je te laisse cette partie là.
Pense à vérifier que $_POST['id'] $_POST['bureau'] et $_POST['nom_prenom'] existent et qu'ils contiennent le même nombre de lignes. Que l'id est bien numérique etc ...
Je te ré-invite à aller sur [url]http://twig.sensiolabs.org/[/url] afin de bien comprendre le fonctionnement de Twig.
Je t'invite également à aller voir les documentations sur les classes et les objets de php. [url]http://php.net/manual/fr/oop4.php[/url]
En espèrent t'avoir aidé en te donnant un exemple pour séparer le code à traiter et celui à afficher. Ceci n'est pas la manière de procéder par excellence ! Il y a une infinité, je t'en remets simplement un exemple. Si il y a des points pas très clair n'hésite pas à demander.