Eléphant du PHP |
71 Messages
12 janv. 2006, 15:25
Voici ce que j'ai fait peux tu me dire si je suis à coté ou si c'est ca car il me met pas d'erreur mais ca marche pas top.
<?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="900">
<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="200">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'] : '';
$recherche = isset($_GET['recherche']) ? $_GET['recherche'] : null;
/* 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}"';
}
if($recherche != "")
{
$sql .= 'WHERE nom = "$recherche"';
}
/* 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 style="text-align: center; font-family: 'times new roman'"><a href="fiche.php?id=<?php echo($data['id']); ?>">Voir</a> | <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
}
?>
<hr>
<p>Affichage par filtre :</p>
<?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 = "<p style=\"text-align: center; font-family: 'times new roman'\">". $listeliens ."</p>\n";
/* On affiche la chaine de liens */
echo($chaine);
?>
<p>Affichage sans filtre :</p>
<p style="text-align: center; font-family: 'times new roman"><a href = "index.php">[Sans triage]</a></p><hr><br>
<center><p><?php echo($num); ?></p><br></center>
</table>
<table><tr><td>
<form action="index.php?recherche=<?php echo($_POST['mot']); ?>" method="POST">
<input type="text" name="mot" maxlength="50" size="20" value="<?php if (isset($_POST['mot'])) echo
stripslashes(htmlentities(trim($_POST['mot']))); ?>">
</td></tr>
<tr><td>
<input type="submit" name="go" value="Ajouter">
</td></tr></table>
<?php
// on libère l'espace mémoire alloué pour cette intérrogation de base
mysql_free_result ($req);
mysql_close ();
?>
</body>
</html>
[/code]