UP PREVIOUS NEXT   Technologies Internet et Education, © TECFA
  2. Principe de la connectivité PHP - bases de données

2. Principe de la connectivité PHP - bases de données

Fonctions PHP-mySQL

2.1 Un exemple complet documenté:

 
Pour l'ajout d'enregistrements deux scripts sont nécessaires:
Il en va de même pour l'édition d'un enregistrement:

2.2 Fonctions PHP - MySQL

A. Se connecter à un serveur de bases de données

mysql_pconnect

mysql_pconnect(host, username, password);
mysql_pconnect("tecfasun1.unige.ch","nobody","");

B. Sélectioner une base de données

mysql_select_db

mysql_select_db(dbname);
mysql_select_db("demo");

C. Exécuter une requête SQL

mysql_query

mysql_query(requête_SQL);
$result = mysql_query("SELECT * FROM demo1");

La variable $result est "boolean" et contient à ce moment

qui est très utile pour le déboguage!

D. Traitement des résultats

Traitement indépendant du nom des champs

mysql_fetch_row

mysql_fetch_row(identificateur)
$row = mysql_fetch_row($result);

mysql_num_fields

mysql_num_fields(identificateur)
$nb_champs = mysql_num_fields($result);

E. Gérer les erreurs (Warnings)

mysql_errno()

mysql_errno(identificateur)

mysql_error()

mysql_error(identificateur)
 
Exemple avec les deux fonctions:
<?php
 mysql_connect("marliesle");
 echo mysql_errno().": ".mysql_error()."<BR>";
 mysql_select_db("nonexistentdb");
 echo mysql_errno().": ".mysql_error()."<BR>";
 $conn = mysql_query("SELECT * FROM nonexistenttable");
 echo mysql_errno().": ".mysql_error()."<BR>";
?>

Exemple 2-1: Traitement indépendant du nom des champs.
Génération d'une table HTML avec les enregistrements contenus dans un résultat

<?
mysql_pconnect("tecfasun1.unige.ch","nobody","");
mysql_select_db("demo");
$result = mysql_query("SELECT * FROM demo1");
?>
<table  border="1">   <tr>
<?
while  ($row  =  mysql_fetch_row($result))  { 
    echo  "<tr>"; 
    for  ($i=0;  $i<mysql_num_fields($result);  $i++)  { 
      echo  "<td>"; 
      // test if this is the URL
      if ($i == 4) { echo  "<a href='$row[$i]'>$row[$i]</a>";  }
      else {  echo  "$row[$i]"; }
      echo  "</td>"; 
    } }
?>
</table>
Traitement en utilisant le nom des champs

mysql_num_rows

mysql_num_rows(identificateur);

$nb_enregistrements = mysql_num_rows($result);

    • Donne le nombre d'enregistrements contenus dans le résultat identifié par $result

mysql_result

mysql_result(identificateur, index, champ);

$nom = mysql_result($result,0,'fullname');

    • index désigne le numéro de l'enregistrement. L'indexation commence à 0 ! (zéro). A l'index 0 correspond le premier enregistrement.
    • champ désigne le nom du champ que l'on veut récupérer.

Exemple 2-2: Traitement utilisant le nom des champs.
Génération d'une table HTML avec les enregistrements contenus dans un résultat

 
<? 
mysql_pconnect( "localhost", "nobody", "")  or  die( "Unable  to  connect  to  SQL  server"); 
mysql_select_db("demo")  or  die ( "Unable  to  select  database"); 
$result  =  mysql_query( "select * from demo1"); 
?> 
  <table  border="1"> 
<? 
$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,'fullname');
  echo  "</td>";   
  echo  "<td>";   
  echo mysql_result($result,$i,'love');
  echo  "</td>";   
  echo  "<td>";   
  echo mysql_result($result,$i,'sports');
  echo  "</td>";   
  echo  "</tr>"; 
  $i++;
}
  echo  "</table>"; 
?>

UP PREVIOUS NEXT -- TIE