Parties

  1. Table des matières
  2. Révisions
    1. interactions
    2. balises HTML
    3. entêtes
    4. propriétés CSS courantes
    5. css simple
    6. sélecteurs CSS simples
    7. selecteurs css - heritage
    8. balise php
    9. php - variables
    10. tableaux en PHP
  3. PHP - chaînes de catactères
    1. Concaténation
    2. insertion simple de variables
    3. correction liste
    4. echappement
    5. Échappement (suite)
    6. Échappement (suite) - 2
  4. formulaires
    1. formulaire HTML
    2. Envoyer
    3. traitement de la saisie
    4. programation d'un formulaire
    5. correction programation d'un formulaire
    6. formulaire et traitement dans le même fichier
    7. correction formulaire et traitement dans le même fichier
    8. préremplir un formulaire
    9. correction pré-remplissage
    10. affichage liste
    11. correction liste-personnes.php
    12. ajouter une personne
    13. correction ajout liste
    14. persistance
    15. correction Persistance des données
    16. Effacer des lignes
    17. correction effacer
    18. Mise en forme
  5. Fin
  6. Base de données
    1. Révision SQL
    2. revision drop
    3. revision insert
    4. creation de la table
    5. Connection à la base de données
    6. Affichage du tableau
    7. formulaire de saisie

1. Table des matières

1.1 Table des matières

Bienvenue au TP-6.


Pour votre progression, c'est très important de finir le TP précédent avant de commencer celui-ci.

Il est vivement recommandé de faire ce TP en ayant le cours sous les yeux. Si vous n'avez pas la version papier, vous pouvez ouvrir la version PDF dans une autre fenêtre (ou onglet) de votre navigateur.

2. Révisions

2.1 Révisions

Dans ces exercices nous allons réviser quelques concepts vus dans les TP précédents.

2.2 interactions

Interactions

Répondez à cette question sans regarder votre cours, en réfléchissant bien aux différents intervenants [A-C] notés [X] et aux actions effectuées (1-5)
x

2.3 balises HTML

Balises HTML



2.4 entêtes

Premières lignes d'un fichier HTML


(essayez répondre sans regarder votre cours)

2.5 propriétés CSS courantes

Propriétés CSS courantes



2.6 css simple

CSS simple


Donnez, en une seule ligne, la déclaration figurant dans un fichier css permettant de surligner (couleur de fond) les éléments importants (strong) en jaune (yellow).

2.7 sélecteurs CSS simples

Sélecteurs CSS simples

  1. <toto>...</toto>
  2. <p id="toto">...</p>
  3. <p class="toto">...</p>

2.8 selecteurs css - heritage

Sélecteurs CSS

On veut que les éléments importants (strong) contenus dans des paragraphes, soient écrits en rouge.

XXXX {color: red;}

Donnez XXXX:

2.9 balise php

Un fichier PHP est constitué d'un mélange de programme en PHP et de HTML.

Que faut-il écrire pour commencer un bout de programme PHP?

2.10 php - variables

traduisez du C en PHP:

x=x+5;


2.11 tableaux en PHP

Tableaux en PHP


$essai est un tableau

print_r($essai) affiche:

Array
(
[Thomas] => rouge
[Ahmed] => vert
[Naima] => bleu
)

Pour afficher 'bleu' on écrit:

echo XXXXX;


Donnez XXXXX

3. PHP - chaînes de catactères

3.1 PHP - chaînes de catactères

Dans les exercices suivants nous allons manipuler des chaînes de caractères.

La manipulation de texte occupe une place importante en PHP, l'objectif étant, souvent, de générer du HTML.

3.2 Concaténation

Concaténation

Le fait de coller deux chaînes de caractères ensemble s'appelle la concaténation.
Ça se fait en PHP avec l'opérateur "." (point).

echo "bonjour "."toto";

Si un des éléments de la concaténation n'est pas une chaîne, il sera converti en chaîne:

$x=5;
echo "resultat: ".$x;


Ici $x est converti d'entier en chaîne avant d'être concaténé.

Exercice

Qu'affiche le code suivant?

$x='z';
echo "a".'b'.$x.'c'.$x;


3.3 insertion simple de variables

Insérer une chaîne dans du texte


En PHP on cherche souvent à ajouter des informations à l'intérieur d'un texte.
Par exemple:

  1. $nom='Ahmed';
  2. echo '<h1>Page perso de : '.$nom.'</h1>';
  3. echo "<h1>Page perso de : $nom</h1>";

Les lignes 2 et 3 font la même chose.
La ligne 2. utilise plusieurs concaténations
La ligne 3. utilise les guillemets doubles " dans lesquelles le PHP remplace les variables.
On choisit la méthode la plus pratique selon les cas.

Exercice:

Écrivez un programme PHP qui génère le html qui s'affiche comme ceci:
en utilisant une liste non ordonnée et des guillemets simples '
Re-écrivez le programme en utilisant des guillemets doubles " sans concaténation.

N'oubliez pas à chaque fois de:

3.4 correction liste

Correction de l'exercice précédent:

Guillemets simples:

...
echo '<ul>';
for($i=1;$i<=10;$i++)
{
echo '<li>ligne '.$i.'</li>';
}
echo '</ul>';
...


Guillemets doubles:

echo "<ul>";
for($i=1;$i<=10;$i++)
{
echo "<li>ligne $i</li>";
}
echo "</ul>";


3.5 echappement

Echappement


En PHP, on génère souvent du html. Par exemple: echo "<p>";

Il arrive souvent qu'on veuille afficher des guillemets: <a href="page.html">lien</a>

Qu'arrive-il si on utile des guillemet doubles comme suit:

echo "<a href="page.html">lien</a>";

3.6 Échappement (suite)

Échappement (suite)


Une première solution serait d'utiliser des guillemets simples pour echo:

echo '<a href="page.html">lien</a>';

Mais ce n'est pas toujours pratique. Une deuxième solution est d'échaper les guillemets:

echo "<a href=\"page.html\">lien</a>";

En utilisant le caractère \ un dit au PHP de ne pas considérer le guillemet " qui suit comme un guillemet, mais comme un caractère ordinaire.

On veut afficher:

<img src="t.gif" alt="ma photo"/>

à l'aide de la ligne suivante:

echo "XXXXX";

que faut-il écrire à la place de XXXXX ?

3.7 Échappement (suite) - 2

Le cas inverse peut se produire. Nous voulons écrire un texte contenant des guillemets simples (') à l'intérieur d'une chaîne définie avec des guillemets simples. Dans ce cas, il faut échapper le guillemet simple :
echo 'une chaîne avec un x' guillemet simple';

Par exemple, nous verrons plus tard qu'on peut appeler une fonction javascript lorsqu'on clique sur un élément HTML:

<h1 onclick="ma_fonction('bonjour')">Un titre</h1>

Nous voulons afficher la ligne précédente avec:
echo 'XXXX';

Que faut-il écrire à la place de XXXX ?

4. formulaires

4.1 formulaires

Dans les exercices suivants nous allons créer des formulaires puis recevoir et traiter les données saisies.
xx
x
x

4.2 formulaire HTML

Formulaire - partie HTML

Nous allons commencer par créer une page HTML contenant un formulaire.

En vous inspirant de l'exemple donné en cours (ci-dessous), créez un fichier essai-formulaire.html dans votre répertoire public_html (important) affichant un champ texte et un bouton pour soumettre (envoyer) la saisie.

Vous trouverez plus de documentation ici:
http://www.la-grange.net/w3c/html4.01/interact/forms.html

Vérifiez que votre page HTML s'affiche correctement et qu'elle est valide en xhtml 1.0 strict.
  1. Expérimentez en changeant la valeur de l'attribut "value" de l'élément "input" correspondant à la zone de saisie texte.
  2. Expérimentez en changeant la valeur de l'attribut "value" de l'élément "input" correspondant au bouton.
x

4.3 Envoyer

Création du script de traitement de la saisie

Créez un fichier traiter-saisie.php dans votre répertoire public_html, et faites en sorte qu'il affiche le titre suivant:
<h1>Je traite la saisie du formulaire</h1>

Vérifiez que ce titre s'affiche bien lorsque vous visitez http://aquanux/~XXXX/traiter-saisie.php et que le HTML généré est valide (il faut ajouter les entêtes).

Faire que la soumission du formulaire appelle le script de traitement

Lorsque vous appuyez sur le bouton submit affiché par essai-formulaire.html le navigateur envoie le texte saisi au serveur vers la page PHP spécifié par l'attribut "action" de l'élément "form".

Par exemple avec:
<form method="get" action="traiter-saisie.php"> .... </form>

les informations saisies dans le formulaire seront envoyés vers la page PHP traiter-saisie.php en utilisant la méthode GET.

Modifiez votre fichier essai-formulaire.html pour qu'il utilise la méthode get et que l'action soit traiter-saisie.php comme dans l'exemple ci-dessus.

Vérification du fonctionnement

Ensuite, visitez http://aquanux/~XXXX/essai-formulaire.html , remplissez le champs texte et appuyez sur le bouton.
Vous devriez voir "
Je traite la saisie du formulaire"

Regardez l'URL (adresse) affichée en haut, dans la barre d'adresses de votre navigateur. Vous devriez voir apparaître (légèrement encodé) le contenu que vous avez saisi dans le formulaire.

Pour mieux comprendre ce qui se passe essayez de comparer avec ce schéma:

x

4.4 traitement de la saisie

traitement de la saisie


Le PHP vous fournit les résultats de la saisie dans un tableau:
rajoutez le code PHP suivant dans traiter-saisie.php pour afficher le contenu du tableau $_GET

echo '<pre>Le tableau GET:<br/>';print_r($_GET);echo '</pre>';

Re-envoyez le formulaire: Vous devriez voir le résultat de votre saisie affiché.

Expérimentez, en changeant la valeur de l'attribut "name" du input correspondant au champ texte dans
essai-formulaire.html

Attention: n'oubliez pas de recharger "essai-formulaire.html" dans votre navigateur si vous l'avez modifié.

Regardez attentivement l'url (adresse) affichée dans votre navigateur lorsque vous soumettez le formulaire.
elle devrait être du type:
http://aquanux/~XXXXX/
traiter-saisie.php?nom=toto


remarquez le
"?nom=toto", les arguments GET sont visibles dans l'url

4.5 programation d'un formulaire

On veut écrire un petit programme qui affiche l'age d'une personne lorsqu'on saisit son pseudo.
Pour ca , on peut reprendre et modifier les fichiers essai-formulaire.html et traiter-saisie.php

Par exemple: si on saisit dans un formulaire 'tom' et on appuie sur "envoyer", le programme affiche

L'age de tom est : 12

Utilisez le tableau ci-dessous dans traiter-saisie.php pour obtenir le résultat souhaité.

$personnes=
array(
'tom'=>12,
'jo' =>24,
'zzz'=>31,
'seb'=>11,
);


4.6 correction programation d'un formulaire

Correction

essai-formulaire.html

...
<form method="get" action="traiter-saisie.php">
<p>
<input type="text" name="nom"/>
<input type="submit" value="chercher"/>
</p>
</form>
...


traiter-saisie.php

...
<?php
$personnes=
array(
'tom'=>12,
'jo' =>24,
'zzz'=>31,
'seb'=>11,
);

$nom=$_GET['nom'];
echo "L'age de $nom est : ".$personnes[$nom];
?>
...

4.7 formulaire et traitement dans le même fichier

Le programme précèdent est un peu pénible à utiliser. A chaque saisie, nous devons revenir à essai-formulaire.html

Une solution est de fusionner les fichiers essai-formulaire.html et traiter-saisie.php en un seul fichier qu'on pourra appeler personnes.php

Dans personnes.php, il faudra déterminer si on se trouve dans le cas ou une valeur a été saisie ou pas.
Pour ca on peut regarder dans le tableau $_GET voir si la clef 'nom' existe dedans.
Si elle existe, c'est que la saisie a été faite et on doir afficher l'âge de la personne.
Sinon, on doit juste présenter le formulaire.

Pour savoir si une clé d'un tableau existe on peut utiliser la fonction "isset" : par exemple:
if(isset($_GET['nom']))
{
// afficher infos sur la personne
}

Fusionnez les deux fichiers et utilisez isset pour afficher les information sur une personne que si elles ont été demandées.


4.8 correction formulaire et traitement dans le même fichier

Correction

personnes.php

...
<?php
$personnes=
array(
'tom'=>12,
'jo' =>24,
'zzz'=>31,
'seb'=>11,
);

if(isset($_GET['nom']))
{
$nom=$_GET['nom'];
echo "<p>L'age de $nom est : ".$personnes[$nom]."</p>";
}

?>
<form method="get" action="personnes.php">
<p>
<input type="text" name="nom"/>
<input type="submit" value="chercher"/>
</p>
</form>
...


4.9 préremplir un formulaire

Pre-remplir un formulaire:

En html, on peut pré-remplir un champ "text" d'un formulaire en utilisant l'attribut "value".

Par exemple, pour obtenir un champ texte prerempli avec la valeur "tom" on utilise:
<input type="text" name="nom" value="tom" />

Modifiez le fichier personnes.php pour qu'après une saisie il ré-affiche le formulaire pré-rempli avec la dernière valeur saisie: Donc, si on saisit "toto", le formulaire suivant s'affichera avec la valeur "toto".

4.10 correction pré-remplissage

correction pré-remplissage

(seuls les lignes en gras changent)
personnes.php

...
<?php
$personnes=
array(
'tom'=>12,
'jo' =>24,
'zzz'=>31,
'seb'=>11,
);

$nom='';
if(isset($_GET['nom']))
{
$nom=$_GET['nom'];
echo "<p>L'age de $nom est : ".$personnes[$nom]."</p>";
}

?>
<form method="get" action="personnes.php">
<p>
<input type="text" name="nom" value="<?php echo $nom; ?>"/>
<input type="submit" value="chercher"/>
</p>
</form>
...

4.11 affichage liste

Affichage d'une liste

Écrivez un nouveau programme liste-personnes.php qui affiche le tableau PHP suivant sous la forme d'un tableau HTML.
Affichez les noms dans la première colonne du tableau HTML et les ages dans la deuxième.

$personnes=
array(
'tom'=>12,
'jo' =>24,
'zzz'=>31,
'seb'=>11,
);

4.12 correction liste-personnes.php

correction

liste-personnes.php
...
<?php
$personnes=
array(
'tom'=>12,
'jo' =>24,
'zzz'=>31,
'seb'=>11,
);

echo '<table>';
foreach($personnes as $nom=>$age)
{
echo '<tr>';
echo "<td>$nom</td>";
echo "<td>$age</td>";
echo '</tr>';
}
echo '</table>';

?>
...

4.13 ajouter une personne

Ajouter une personne

Nous voulons ajouter au programme précédent un formulaire permettant d'ajouter une personne au tableau.
En vous inspirant de l'exercice d'avant (personnes.php) modifiez liste-personnes.php pour
1. ajouter un formulaire contenant deux champs textes, pour le nom et pour l'age
2. faites en sorte que lors de la soumission du formulaire, une nouvelle personne soit ajoutée dans le tableau PHP et qu'elle apparaisse dans le tableau HTML affiché.

4.14 correction ajout liste

liste-personnes.php

<?php
$personnes=
array(
'tom'=>12,
'jo' =>24,
'zzz'=>31,
'seb'=>11,
);

if(isset($_GET['nom']))
{
$nom=$_GET['nom'];
$age=$_GET['age'];
$personnes[$nom]=$age;
}

echo '<table>';
foreach($personnes as $nom=>$age)
{
echo '<tr>';
echo "<td>$nom</td>";
echo "<td>$age</td>";
echo '</tr>';
}
echo '</table>';

?>
<form method="get" action="liste-personnes.php">
<p>
<label>nom:<input type="text" name="nom"/></label>
<br/>
<label>age:<input type="text" name="age"/>
</label>
<input type="submit" value="ajouter"/>
</p>
</form>


4.15 persistance

Persistance des données

Dans l'exercice précédent, on aurait voulu que la personne ajoutée à la liste reste dans la liste.
Le problème est le suivant:
En PHP les variables ne sont pas conservées d'une requête à la suivante.

ça peut-être surprenant ou déroutant, si vous êtes habitués à programmer en C ou en Java (des applications qui ne sont pas dans une optique client-serveur).

La solution la plus courante est d'enregistrer les informations dans une base de données, et les relire de la base de données à la requête suivante. Cela dépasse un petit peu le cadre de notre TP.

Pour l'instant nous allons travailler avec deux fonctions enregistrer() et lire() très simples. Pour que ca marche, vous devez ajouter la ligne suivante au tout début de votre code (avant tout html). Si vous obtenez un message "headers already sent" c'est que ce n'est pas au tout début.

<?php session_start();?>

et quelque part dans votre programme ajoutez:

function enregistrer($donnee)
{
$_SESSION['donnee']=$donnee;
}

function lire()
{
return $_SESSION['donnee'];
}

Maintenant, modifiez liste-personnes.php de manière à ce que le tableau $personnes soit enregistré et relu à chaque requête. Attention: la première fois que vous l'executez, vous devez initialiser le tableau $personnes avec un tableau contenant des personnes. Pour les executions suivantes vous pouvez mettre en commentaire le code d'initialisation.


4.16 correction Persistance des données

correction Persistance des données

(les changements sont en gras)
liste-personnes.php

<?php session_start();?>
<?php echo '<?xml version="1.0" encoding="UTF-8"?>';?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Un essai</title>
</head>
<body>
<?php

// initialisation, à ne faire qu'une seule fois
// $personnes=
// array(
// 'tom'=>12,
// 'jo' =>24,
// 'zzz'=>31,
// 'seb'=>11,
// );
// enregistrer($personnes);

$personnes=lire();

if(isset($_GET['nom']))
{
$nom=$_GET['nom'];
$age=$_GET['age'];
$personnes[$nom]=$age;
enregistrer($personnes);
}

echo '<table>';
foreach($personnes as $nom=>$age)
{
echo '<tr>';
echo "<td>$nom</td>";
echo "<td>$age</td>";
echo '</tr>';
}
echo '</table>';


function enregistrer($donnee)
{
$_SESSION['donnee']=$donnee;
}

function lire()
{
return $_SESSION['donnee'];
}

?>
<form method="get" action="liste-personnes.php">
<p>
<label>nom:<input type="text" name="nom"/></label>
<br/>
<label>age:<input type="text" name="age"/>
</label>
<input type="submit" value="ajouter"/>
</p>
</form>
</body>
</html>


4.17 Effacer des lignes

Effacer des lignes

Dans cet exercice, nous allons rajouter un lien à chaque ligne pour l'effacer comme ceci:
effacer
Nous avons vu dans un exercice précédent que les arguments GET d'un formulaire apparaissaient dans le lien :
http://aquanux/~XXXXX/exemple.php?nom=toto
Nous n'avons donc pas toujours besoin de formulaire pour envoyer des arguments GET au programme PHP.

Rajoutez une case au début de chaque ligne du tableau. Dans ces cases, ajoutez un lien qui envoie l'argument en GET le nom de la personne à effacer.

Ensuite, faites en sorte que si vous recevez en argument GET l'ordre d'effacer, vous supprimez la personne correspondante du tableau PHP.

Pour effacer un élément d'un tableau PHP, vous pouvez utiliser la fonction unset:
unset($montableau[maclef]);


4.18 correction effacer

correction effacer

liste-personnes.php

...
$personnes=lire();

if(isset($_GET['effacer']))
{
unset($personnes[$_GET['effacer']]);
enregistrer($personnes);
}


if(isset($_GET['nom']))
{
$nom=$_GET['nom'];
$age=$_GET['age'];
$personnes[$nom]=$age;
enregistrer($personnes);
}

echo '<table>';
foreach($personnes as $nom=>$age)
{
echo '<tr>';
echo '<td><a href="liste-personnes.php?effacer='.$nom.'">effacer</a></td>';
echo "<td>$nom</td>";
echo "<td>$age</td>";
echo '</tr>';
}
echo '</table>';
...

4.19 Mise en forme

Mise en forme

En utilisant des styles et l'image suivante:del
Faites en sorte d'obtenir un affichage plus joli, par exemple comme celui-ci:
liste

L'image doit être dans le lien, pour qu'on puisse cliquer dessus pour effacer la ligne.

5. Fin

5.1 Fin

Merci de passer au TP suivant (TP-5).
( ne faites pas les questions suivantes de ce TP)

NE FAITS PAS LES QUESTIONS SUIVANTES DE CE TP
(sauf si vous êtes vraiment TRÈS en avance)

6. Base de données

6.1 Base de données

Dans les exercices précédents nous avons appris à utiliser des formulaires et à traiter les saisies.

Entre deux exécutions d'une page PHP, toutes les informations étaient perdues, nous ne pouvions pas enregistrer les résultats de la saisie.

Pour pouvoir enregistrer des informations, l'approche la plus courante est d'utiliser une base de données (BDD).

Dans les exercices suivants nous allons apprendre a se connecter sur votre base de données postgres et à y effectuer des requêtes.


6.2 Révision SQL

Révision SQL


Quels sont les deux premier mots de la commande SQL vous permettant de générer une nouvelle table ?

6.3 revision drop

Révision:
Quels sont les deux premiers mots de la commande SQL vous permettant de détruire une table?

6.4 revision insert

Révision:
Quels sont les deux premiers mots de la commande sql vous permettant d'ajouter une nouvelle ligne à une table?

6.5 creation de la table

Creation d'une table


Vous pouvez accéder directement à votre base de données postgres en tapant la commande suivante dans un terminal:
psql -h aquanux

Quelques commandes utiles:

Dans les questions suivantes vous allez avoir besoin d'un mot de passe pour accèder à votre BDD à partir du PHP. Si vous n'avez pas de mot de passe ou si vous l'avez oublié, vous pouvez le modifier à l'aide dela commande postgres suivante:
ALTER USER "votrenomutilisateur" WITH PASSWORD 'nouveaumotdepasse';

1. Créez une table personnes avec les colonnes 'pseudo' 'nom' 'prenom' 'score' 'admin'. La clé primaire sera 'pseudo'.
(doc dans http://www.postgresql.org/docs/7.1/static/sql-createtable.html )
CREATE TABLE personnes ...

Votre table contiendra les colonnes suivantes:
'nom' -> varchar(40)
'prenom' -> varchar(40)
'pseudo' -> varchar(40) (clé primaire)
'score' -> integer
'admin' -> boolean

2. ajoutez quelques lignes à votre table
(doc http://www.postgresql.org/docs/7.1/interactive/sql-insert.html)
INSERT INTO personnes VALUES ('...','...'...);

6.6 Connection à la base de données

Connexion à la base de données et affichage d'un table

En vous inspirant de l'exemple ci-dessous (tiré de la doc PHP), affichez le contenu de la table.
Vous trouverez la documentation des fonction postgres du PHP ici (aller en bas de la page):
http://www.php.net/manual/fr/ref.pgsql.php

Vous y trouverez l'exemple suivant de code permettant de se connecter à la BDD.

Recopiez cet exemple en modifiant les paramètres de connexion et le nom de la table.
Ceci permettra de vérifier que la connexion à votre BDD fonctionne correctement.

<?php
// Connexion, sélection de la base de données
$dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo")
or die('Connexion impossible : ' . pg_last_error());

// Exécution de la requête SQL
$query = 'SELECT * FROM auteurs';
$result = pg_query($query) or die('Échec requête : ' . pg_last_error());

// Affichage des résultats en HTML
echo "<table>\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";

// Libère le resultset
pg_free_result($result);

// Ferme la connexion
pg_close($dbconn);
?>

6.7 Affichage du tableau

Affichage du tableau

Fusionnez le programme précédent avec le programme d'affichage de tableau que vous avez crée plus tôt dans le TP (avec les formulaires).

6.8 formulaire de saisie

Formulaire de saisie d'une personne

1. Écrivez un formulaire HTML permettant de saisir tous les champs d'une personne. L'attribut "action" du formulaire enverra vers un fichier "ajout-personne.php". Vous utiliserez la méthode post.

2. Créez un fichier ajout-personne.php et ajoutez-y le code permettant de se connecter à la BDD (pg_connect...)

3. Avec le contenu du tableau $_POST, générez une chaîne de caractères ($query) contenant requête SQL ("INSERT INTO personnes VALUES ('tom',..." ) qui permettra d'insérer la nouvelle personne. Affichez cette requête (echo $query;) sans l'exécuter pour vérifier qu'elle est correcte.

4. Utilisez la fonction pg_query pour exécuter la requête et ensuite vérifiez (sur la ligne de commande psql) que votre table a bien été modifiée.
$result = pg_query($query) or die('Échec requête : ' . pg_last_error());