PREVIOUS UP   Technologies Internet et Education, © TECFA
  3. Une petite application PHP - mySQL : Le livre d'or.

3. Une petite application PHP - mySQL : Le livre d'or.

3.1 Détails des fichiers et des ressources

Cette petite application se compose de 3 fichiers qui ont les fonctions suivantes :

3.2 Structure de la table comments

create table comments (
	id int(10) default '0' not null auto_increment,
	nom char(20) default '' not null,
	prenom char(20) default '',
	email char(50) default '' ,
	computer char(10),
	browser char(10),
	version char(10),
	comments char(200),
	primary key (id),
	key nom (nom)
);
 

3.3 Détails de l'écriture des données

On commence par ce connecter à la base de donnée

$link = mysql_connect
( "tecfasun5
", "nobody
", "")
or die ( "Unable  to  connect  to  SQL  server");

 
mysql_select_db
("mydb
", $link)
or die ( "Unable  to  select  database");

Ensuite, on construit la requête SQL à partir des données envoyées par le formulaire et on envoi la requête à mySQL

$query_string = "INSERT INTO comments (nom, prenom, email, computer, browser, version, comments) VALUES ('$nom', '$prenom', '$email', '$computer', '$browser', '$version', '$comments')";
 
$result = mysql_query
 ($query_string);

A ce stade, la variable $result contient

Il faut faire un test sur cette variable pour donner un feedback à l'utilisateur

if ($result) {    
    echo "<p>Vos données son bien enregistrées.";
    echo "<p>Vous pouvez aller voir tous les <a href='comments-list.php'>commentaires</a>.\n";
  }
  else {
    echo "<p>Warning: ERROR writing on data base.</p>\n";
    echo "<p>Error returned by mySQL : " . mysql_error
() . "\n";
  }

La fonction mysql_error() retourne la dernière erreur mySQL générée dans un string qu'on peut imprimer. Très utilile pour debugger !

En cas de problème, il est conseillé d'imprimer à l'écran la requête SQL pour pouvoir la vérifier

echo $query_string;

Dans de grosses applications avec beaucoup de données, il faut penser a libérer les ressources de la machine en fermant les connections ouvertes

mysql_close
($link);

3.4 Détails de l'affichage de la table

Après avoir établi la connection (voir paragraphe suivant) il faut extraire les données de la table comments

$result = mysql_query
( "select * from comments"); 

A ce stade, la variable $result contient :

Ce n'est pas fait dans cet exemple mais il est préférable de faire un test sur cette variable avant la suite des opérations.

if (!$result) {
	echo "ca marche pas :(";
	...arreter le programme

} else {
	...traiter les données
}

Pour présenter les données à l'écran, on les présente dans un tableau. Les lignes et les cellules sont crées dans une boucle qui va lire chaque enregistrement du "result set".

 
$i = 0;
 
while ($i < mysql_num_rows
($result)) {
  echo  "<tr>";   
 
  echo  "<td>";   
  echo mysql_result
($result,$i
,'id
');
  echo  "</td>";   
 
  echo  "<td>";   
  echo mysql_result
($result,$i
,'nom
');
  echo  "</td>";   
 
  echo  "<td>";   
  echo mysql_result
($result,$i
,'prenom
');
  echo  "</td>";   
  
  ..... suite du traitement des champs
  
  echo "</tr>";
 
  $i++;
}

PREVIOUS UP -- TIE