par
Invité » 12 janv. 2006, 11:57
Oui c'est sur, c'est mieux une feuille de style mais bon. Je penses en faire une lorsque j'aurais entièrement fini. Mais pour le moment c'est pas ma priorité la mise en forme, c'est pour cela que j'utilise les balise.
Voici le code terminer mais avec la balise <center> au niveau du lien des lettre qui fonctionne pas :
<?php
// on se connecte à la base de données
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('repertoire_tel', $base);
?>
<html>
<head>
<title>affichage du répertoire</title>
</head>
<body>
<?php
// structure de la mise en page
?>
<center><h3>Répertoire téléphonnique</h3></center>
<br>
<br>
<center>
<p><a href="ajout.php">Ajouter une entrée</a></p>
<table border cellspacing="0" width="800">
<tr>
<th width="100"><p>Nom</p></th>
<th width="100"><p>Prénom</p></th>
<th width="300"><p>Addresse</p></th>
<th width="200"><p>téléphone</p></th>
<th width="100">Supprimer</th>
</tr>
</center>
<?php
// lancement de la requête
/* On récupère la lettre choisie et envoyée en paramètre s'il y en a une */
$lettre = isset($_GET['lettre']) ? $_GET['lettre'] : '';
/* On inutialise le début de la requête SQL */
$sql = 'SELECT id, nom, prénom, addresse, telephone FROM liste_proprietaire ';
/* Si il y a une lettre en paramètre, on ajoute une clause WHERE pour n'extraire
que les champs contenant cette lettre */
if($lettre != "")
{
$sql .= 'WHERE `nom` REGEXP "^(' . strtoupper($lettre) . '|';
$sql .= strtolower($lettre) . '){1}"';
}
/* On ajoute une clause ORDER BY por trier les résultat en ordre (ici alphabétique) */
$sql .= 'ORDER BY nom';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// Récupération du nombre d'enregistrement dans la base
$number = MYSQL_NUM_ROWS($req);
// Affichage du nombre d'enregistrement
if($number==1){
$num = "$number enregistrement dans le répertoire";
}
else{
$num = "$number enregistrements dans le répertoire";
}
//on récupère le résultat sous la forme d'un tableau en scanan tous les tuples
while ($data = mysql_fetch_array($req))
{
// on effectu l'affichage des résultats
?>
<tr>
<td><?php echo($data['nom']); ?></td>
<td><?php echo($data['prénom']); ?></td>
<td><?php echo($data['addresse']); ?></td>
<td><?php echo($data['telephone']); ?></td>
<td><p><a href="supprimer.php?id=<?php echo($data['id']); ?>">Supp</a> | <a href="modification.php?id=<?php echo($data['id']);
?>">Modif</a></p></td>
</tr>
<?php
}
?>
<?php
$alphabet = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X",
"Y", "Z");
/* Création des liens */
$liens = array();
foreach($alphabet as $lettre)
{
$liens[] = "<a href=\"index.php?lettre=". $lettre ."\" title=\"Rechercher les noms commençant par la lettre ". $lettre ."\">". $lettre
."</a>";
}
/* On insère un signe de séparation entre les lettres/liens */
$listeliens = implode(" - ", $liens);
/* On construit la chaine de liens */
$chaine = "<center><p><font face='Times New Roman'>". $listeliens ."</font></p><center>\n";
/* On affiche la chaine de liens */
echo($chaine);
?>
</table>
<center><p><?php echo($num); ?></p></center>
<?php
// on libère l'espace mémoire alloué pour cette intérrogation de base
mysql_free_result ($req);
mysql_close ();
?>
</body>
</html>
Oui c'est sur, c'est mieux une feuille de style mais bon. Je penses en faire une lorsque j'aurais entièrement fini. Mais pour le moment c'est pas ma priorité la mise en forme, c'est pour cela que j'utilise les balise.
Voici le code terminer mais avec la balise <center> au niveau du lien des lettre qui fonctionne pas :
[php]<?php
// on se connecte à la base de données
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('repertoire_tel', $base);
?>
<html>
<head>
<title>affichage du répertoire</title>
</head>
<body>
<?php
// structure de la mise en page
?>
<center><h3>Répertoire téléphonnique</h3></center>
<br>
<br>
<center>
<p><a href="ajout.php">Ajouter une entrée</a></p>
<table border cellspacing="0" width="800">
<tr>
<th width="100"><p>Nom</p></th>
<th width="100"><p>Prénom</p></th>
<th width="300"><p>Addresse</p></th>
<th width="200"><p>téléphone</p></th>
<th width="100">Supprimer</th>
</tr>
</center>
<?php
// lancement de la requête
/* On récupère la lettre choisie et envoyée en paramètre s'il y en a une */
$lettre = isset($_GET['lettre']) ? $_GET['lettre'] : '';
/* On inutialise le début de la requête SQL */
$sql = 'SELECT id, nom, prénom, addresse, telephone FROM liste_proprietaire ';
/* Si il y a une lettre en paramètre, on ajoute une clause WHERE pour n'extraire
que les champs contenant cette lettre */
if($lettre != "")
{
$sql .= 'WHERE `nom` REGEXP "^(' . strtoupper($lettre) . '|';
$sql .= strtolower($lettre) . '){1}"';
}
/* On ajoute une clause ORDER BY por trier les résultat en ordre (ici alphabétique) */
$sql .= 'ORDER BY nom';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// Récupération du nombre d'enregistrement dans la base
$number = MYSQL_NUM_ROWS($req);
// Affichage du nombre d'enregistrement
if($number==1){
$num = "$number enregistrement dans le répertoire";
}
else{
$num = "$number enregistrements dans le répertoire";
}
//on récupère le résultat sous la forme d'un tableau en scanan tous les tuples
while ($data = mysql_fetch_array($req))
{
// on effectu l'affichage des résultats
?>
<tr>
<td><?php echo($data['nom']); ?></td>
<td><?php echo($data['prénom']); ?></td>
<td><?php echo($data['addresse']); ?></td>
<td><?php echo($data['telephone']); ?></td>
<td><p><a href="supprimer.php?id=<?php echo($data['id']); ?>">Supp</a> | <a href="modification.php?id=<?php echo($data['id']);
?>">Modif</a></p></td>
</tr>
<?php
}
?>
<?php
$alphabet = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X",
"Y", "Z");
/* Création des liens */
$liens = array();
foreach($alphabet as $lettre)
{
$liens[] = "<a href=\"index.php?lettre=". $lettre ."\" title=\"Rechercher les noms commençant par la lettre ". $lettre ."\">". $lettre
."</a>";
}
/* On insère un signe de séparation entre les lettres/liens */
$listeliens = implode(" - ", $liens);
/* On construit la chaine de liens */
$chaine = "<center><p><font face='Times New Roman'>". $listeliens ."</font></p><center>\n";
/* On affiche la chaine de liens */
echo($chaine);
?>
</table>
<center><p><?php echo($num); ?></p></center>
<?php
// on libère l'espace mémoire alloué pour cette intérrogation de base
mysql_free_result ($req);
mysql_close ();
?>
</body>
</html> [/php]