Exemple de code

Voici un exemple de formulaire html et le script PHP associé.

Le formulaire : formsql.html

 
 <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> 
 <html> 
 <head> 
 </head> 
 <body> 
 Lancement d'un formulaire de requête SQL via un serveur HTTP 
 Utilise une base Demo 
 <br> 
 Entrez une chaîne sql valide - Exemple : 
 <form action="resultsql.php" METHOD=post> // Ici le script qui sera exécuté 
 <textarea cols="50" rows="5" 
 name="c_SQL">Select * from phonebook ;</textarea></p>
 <br> 
 <INPUT TYPE="submit" VALUE="Search!"> 
 </form> 
 </body> 
 </html> 

Figure 42.1. Formulaire de saisie

Formulaire de saisie

Le script associé : Page resultsql.php

 'Solution qui permet de s'affranchir du nombre de champs. 
 <?
/* Test de la connexion à la base */
 if($c_SQL != "") 
 { 
 echo $c_SQL ; 
 $conn = pg_Connect("localhost","5432","","","demo"); 
  if (! $conn)  
 { 
  echo "Erreur de connection à la base. \n"; 
  exit; 
  } 
  
 /* teste le résultat de la requête */ 
 $result = pg_Exec($conn, $c_SQL); 
  if (! $result) 
 { 
  echo "Erreur d'accès aux tables. \n"; 
  exit; 
  } 
  
/* teste le nombre de tuples retournées */
  $numR = pg_NumRows ($result); 
  if ($numR == 0)  
 { 
  echo "Aucun enregistrement retourné. \n"; 
  exit; 
  } 
  
 /* Compte le nombre de champs */ 
 $numF = pg_Numfields($result); 
  
 /* mise en forme du résultat sous forme tabulaire */
 /* lignes (tuples), colonnes (champ) */
 echo "<table border = 1>"; 
 $i = 0;  
 while ($i < $numR)    { 
   echo "<tr>";  
  $j = 0; 
    while ($j < $numF)  { 
   $nc=pg_result($result,$i,$j); 
   echo "<td>"; echo $nc;  echo "</td>";  $j++; 

   } 
  echo "</tr> \n"; 
  $i++; 
  } 
 echo "</table> \n"; 
/* Libère la mémoire */
 pg_FreeResult; 
/* Ferme la connection */
 pg_Close($conn); 
 } 
 ?> 

Figure 42.2. Résultat de la requête

Résultat de la requête