• Aucun résultat trouvé

Quelques scripts Document 8 (.pdf)

N/A
N/A
Protected

Academic year: 2022

Partager "Quelques scripts Document 8 (.pdf)"

Copied!
3
0
0

Texte intégral

(1)

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&eacute;es "Poursuite" SRC</title>

<link rel="stylesheet" href="style.css" type="text/css">

</head>

<?php

1

(2)

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

(3)

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>

II) Au terme de ce script vous savez tout.

mysql_connect(serveur, nom, password) connecte à une serveur mysql_select_db (base) connecte à une base particulière.

$resultat = mysql_query(“SELECT * FROM $table WHERE critère) interroge la base, en exécutant le code SQL. Le résultat est stocké dans la variable $resultat, ce qui permet de dire :

if ($resultat) {

/* pour chaque ligne stockée dans une objet (ou un tableau), afficher le résultat, tant que il y a des lignes à afficher */

while ($table = mysql_fetch_object ($resultat)) {

echo “$table->champAffiche\n”; /* la syntaxe est impérativement $table + une flèche et le champ à afficher. Soit : poursuite->Titre, par exemple.*/

} }

III) Comment traiter des autres cas

?

On utilise les mêmes instructions, celles en php, et celle en SQL. Très peu de chose changent.

Ainsi $resultat = mysql_query (‘SELECT * FROM poursuite WHERE Ville = ‘Paris’ AND Domaine = ‘Réseau’) permettra de gérer une requête sur la table poursuite mais limitant le sous-ensemble retourné aux fiches de poursuite de la ville de Paris, et du domaine d’étude

« réseau ».Avec ici un critère passé en paramètre : La valeur de la ville. Regardez le

« corrigé » en ligne, et vous devrez pourvoir déduire ce qui est le code SQL utilisé sur le site Poursuite études.

Nous avons connecté le serveur, la base, la table et nous avons demandé l’affichage des champs de la base. Soit ce que réalise toutes les requêtes que nous étudierons… Seuls les paramètres

des requêtes changeront.

3

Références

Documents relatifs

This article describes a practical procedure to compute, for any Fuchsian group of genus 2 acting on the unit disc, a uniformizing function for the corresponding algebraic

On a bien vu, en effet, qu'une partie de l'eau contenue dans un terrain n'est pas susceptible d'être mise en mouvement (l'eau de rétention est liée à la roche), mais, en plus,

La méthode la plus simple est d’avoir une équation cartésienne du plan et un système d’équations paramétriques de la droite. On remplace dans l’équation du plan,

Quels sont les espaces verts traversés par un cours d’eau qui sont sur la commune de Thury Harcourt2.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

La seule justification de ces catégorisations est liée non pas aux objets qu’elles recouvrent — non seulement, on y reviendra, ces derniers peuvent être variés, mais en outre

First, in an attempt to characterize the criticity of joining a new channel for the playback delay, we measure and analyze the PPlive system [1] focusing on the so-called

copolymer composites then requires the following steps: modification of the dye (alizarin) to prepare a vinyl monomer able to copolymerize with styrene, polymerization of BA on a