eowene
Messages postés28Date d'inscriptionlundi 10 novembre 2003StatutMembreDernière intervention19 décembre 2006
-
19 janv. 2004 à 10:38
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 2009
-
19 janv. 2004 à 11:42
Bonjour à tous.
J'ai un problème et je ne comprends pas du tout d'où il vient.
Voilà le principe...
Je recherche un nom dans une base de données. Pour ceci, j'ai 2 pages de recherche, une page où je peux rechercher une personne en inscrivant le nom et une autre page où je click sur la première lettre du nom.
Ces 2 pages renvoie à une même 3ème page de consultation.
Le traitement est le même pour les 2 méthodes de recherches, seules les requêtes sql changent.
Mon problème vient lorsqu'il y a plusieurs personnes qui portent le même nom, ça n'affiche que le 1er alors que lorsque l'on click sur une lettre, ça affiche bien toute les personnes ayant un nom commençant par cette lettre là.
J'aimerais que lorsque je tape un nom complet, toute les personnes portant ce nom là s'affichent...
Je ne sais pas si c'est très clair.
Voici mon code :
// Invoque la connexion à la base annuaire
require_once ('connexion_annuaire.php');
mysql_select_db($database, $connexion);
$action= $_GET['action'];
if ($action=='nom')
{
$nom=$_POST['nom'];
// Requete sur tous les champs de contact $sql_contact "SELECT * FROM contact WHERE contact_nom '".$nom."' ORDER BY contact_prenom";
// Création d'un ensemble résultats (RecordSet)
$resultat_contact = mysql_query($sql_contact, $connexion) or die('Erreur SQL !
'.$sql_contact.'
'.mysql_error());
}
if ($action=='alphabetique')
{
$lettre=$_GET['lettre'];
// Requete sur tous les champs de contact
$sql_contact = "SELECT * FROM contact WHERE contact_nom LIKE '".$lettre."%' ORDER BY contact_nom";
// Création d'un ensemble résultats (RecordSet)
$resultat_contact = mysql_query($sql_contact, $connexion) or die('Erreur SQL !
'.$sql_contact.'
'.mysql_error());
}
$nb_ligne=mysql_num_rows($resultat_contact);
//Test d'existance du contact
if ($nb_ligne!=0)
{
// Affichage des contacts dans un tableau
// Entetes des colonnes
echo '<table width="100%" border="1">
<tr>
<td>
NOM
</td>
<td>
PRENOM </td>
<td>
FONCTION </td>
<td>
TELEPHONE ABREGE </td>
<td>
TELEPHONE COMPLET </td>
<td>
MAIL </td>
<td>
SERVICE </td>
</tr>';
// Commande de boucle pour afficher les contacts
while($ligne_contact =mysql_fetch_array($resultat_contact))
{
// Requete sur le service$sql_service "SELECT service_num, service_libelle FROM service WHERE service_num '".$ligne_contact['contact_service']."'";
//Création d'un RecordSet
$resultat_service = mysql_query ($sql_service,$connexion) or die('Erreur SQL !
'.$sql_service.'
'.mysql_error());
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 19 janv. 2004 à 11:20
alors je sais pas du tout si c du à ça, mais j'ai tendance à ne pas utiliser à la fois les num_rows et fetch_array.
peux tu essayer d'enlever ton test d'existance ( if mysql_num_rowq()) et dire si ça fonctionne?
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 19 janv. 2004 à 11:42
$sql_exist="SELECT COUNT(*) FROM contact WHERE contact_nom = '".$nom."'";
$existence=(mysql_query$sql_exist,$connexion);
if (!mysql_result(existence,0))
echo "personne de ce com là";
else
/* treater la demande */