suppression dans une base de données

Invité
Invité n'ayant pas de compte PHPfrance

12 janv. 2006, 14:53

Est-il possible d'effectuer une recherche via un champ d'un formulaire.
Par exemple maintenant que j'effectue un filtre soit par lettre ou non, je voudrais seulement mettre un champ de formulaire (input) ainsi on tape le nom (ex : "Essai") et la il m'affiche soit que les gens portant le nom essai.

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]