Petit Guide SGBD ¼ (Patrick. Ferré) 2003/2004 SRC2
Quelques scripts de démarrage. A partir de ces derniers, les autres scripts sont des instances de ces scripts que l’on peut considérer comme « passe
partout ».
Vous avez dans les précédents petits guides, les éléments pour créer les tables. Passons maintenant aux requêtes. Ces dernières utilisent les instructions SQL, encapsulées dans des instructions php.
I) Deux scripts classiques, l’un pour connecter une base, le second pour activer une requête.
Script config.php (il donnera les renseignements à chaque script « demandeur », par un require(config.php) inséré dans les scripts.
<?
/* Configuration de la connexion générale et Config BD */
/* "localhost" est en Mode local: ne nécessitant pas de mot de passe */
define (SERVEUR, "localhost");
define (NOM, "root");
define (PASSE, "");
define (BASE, "PoursuiteEtude");
// Pas de password, vous ne saurez pas les gérer encore //
$serveur ="localhost";
$base = "PoursuiteEtude"; /* Nom de la base */
$connexion = mysql_connect(SERVEUR, NOM, PASSE);
if(!$connexion) {
echo "Connexion au serveur mysql : " . $serveur . " impossible\n";
exit;
}
if (!mysql_SELECT_db ($base, $connexion)) {
echo "Accès à la base de données " . $base . " impossible\n";
exit;
}
?>
Ainsi êtes-vous connecté. Notez alors que ce script est nécessaire à chaque script php qui « demandera » une connexion à la base de donnée.
On continue par un script qui, par exemple, interpelle la base de donnée, et retourne l’affichage de toutes la table, avec une limite inférieure et supérieure mais nous verrons cela plus tard. En l’état, sont affichés tous les champs qui ont été explicitement demandés dans la requête SQL et dont le formatage est programmé en Php. Ce script est nommé connectpoursuite.php
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>Script de connexion: Base de données "Poursuite" SRC</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<?php
1
Petit Guide SGBD ¼ (Patrick. Ferré) 2003/2004 SRC2
/* Configuration */
require("connexion.php");
require("Page.php"); /* Nous verrons la pagination plus tard */
$table = "poursuite";
/* Requête sur l’entièreté de la table « poursuite » */
$Enregistrements = mysql_query("SELECT COUNT(*) FROM $table", $connexion);
$resultat = mysql_query("SELECT * FROM $table ORDER BY ID ASC, $connexion);
$row = mysql_fetch_row($Enregistrements);
echo "<br><B>$row[0] enregistrements</B> au total<BR>\n";
/* A partir d’ici, c’est une option : Voir le site en ligne */
echo "Entrez le diplôme recherché <b>et/ou</b> la formation (SRC, GEA, ...), <b>et /ou</b> les premières lettres de la ville. % = jocker\n";
echo "<form action=\"ConnectPoursuite.php\" method=\"post\">\n";
echo "<SELECT name=\"Diplome\"><option SELECTED=\"SELECTED\">
</option><option>Annuaire</option><option>Guide</option><option>Iut</option><option>Licence</opt ion><option>Licence Pro
</option><option>Maitrise</option><option>Iup</option><option>Autre</option><option>DU</option><
option>DESS</option><option>Master</option><option>Cv Etudiant</option></SELECT>\n";
echo "<SELECT name=\"Departement\"><option SELECTED=\"SELECTED\"></option><option>%
</option><option>SRC</option></SELECT>\n";
echo "<input type=\"TEXT\" size=\"15\" NAME=\"Ville\">\n";
echo "<input type=\"submit\" value=\"Rechercher\" name=\"recherche\" target=\"Frame\">\n";
echo "</form>\n";
if ($Diplome != '' | $Departement != '' | $Ville != '') {
$Enregistrements = mysql_query("SELECT COUNT(*) FROM $table WHERE $table.Diplome LIKE '$Diplome%' AND $table.Departement LIKE '$Departement%' AND $table.Ville LIKE '$Ville%'", $connexion);
$resultat = mysql_query("SELECT * FROM $table WHERE $table.Diplome LIKE '$Diplome%' AND $table.Departement LIKE '$Departement%' AND $table.Ville LIKE '$Ville%'",
$connexion);
$row = mysql_fetch_row($Enregistrements);
echo "<font color=\"#ff0000\"><B>$row[0] Occurences</b> trouvée(s) dont le nom est:
<b>$Diplome</b> pour le département: <b>$Departement</b> et le nom de la ville commence par: <b>$Ville</b>.</font></b><BR><BR>\n";
}
*/ Fin de l’option */
if($resultat) /* L’affichage d’une page html proprement dit. */
{
while ($table = mysql_fetch_object ($resultat)) {
echo "ID: $table->ID<BR>\n";
echo "<table border=0 width=\"100%\" cellpadding=\"1\" cellspacing=\"0\"
class=\"text2\"><tr>\n";
echo "<td align=\"left\" bgcolor=#E4E9F5><p class = \"text\">Indicateur: <b>$table-
>Diplome</b><br>\n";
echo "Titre:<font color=\"#0000FF\"> <b>$table->Titre</b></font><BR>\n";
echo "Adresse du site: <b><a href=$table->Adresse>$table->Adresse</a></b><BR><BR>\n";
echo "Descriptif: <b>$table->Descriptif.</b><BR>\n";
echo "Diplôme: <font color=\"#ff0000\"><b>$table->Diplome</b></font> <BR>\n";
echo "Domaine: <b>$table->Domaine.</b><BR>\n";
echo "Commentaire de l'enseignant:<font color=\"#FF8080\"> <b>$table->Commentaire</b>
</font><BR>\n";
echo "Département: <b>$table->Departement.</b><BR>\n";
echo "Ville: <b>$table->Ville.</b>\n";
echo "<font color=\"#E4E9F5\"><a href=Admin.htm>.</a></b></font></p>\n";
2
Petit Guide SGBD ¼ (Patrick. Ferré) 2003/2004 SRC2
echo "</td></tr></table><br>\n";
}
require("Page.php");
mysql_free_result($resultat);
}
/* -- avertir l'utilisateur --*/
else {
echo "<center><B>Erreur dans l'exécution de la requête.</B></BR>";
echo "<B>Message d'erreur retourné par MySql :</B> " . mysql_error($connexion);
echo "</center>\n";
}
?>
</body>
</html>