IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

page tampon de validation d'adresse


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut page tampon de validation d'adresse
    Bonjour
    j'ai eu une demande du client qui me force a modifier le code d'une page
    La situation:
    J'ai un formulaire de saisie de donné pour une réclamation suite a un sinistre
    Il y a des champs de saisie d'adresse de la perte
    je l'ai séparer ainsi
    NoCivique -> zone de texte
    Suite->Zone de texte
    Rue-> Zone de texte
    Ville->Zone de texte
    Code postal->zone de texte

    Ainsi dans ma bdd je garde les champs séparer pour garder une forme de saisie afin d'éviter que l'usager n,entre le tout séparer par des virgules...

    Tout fonctionnait, mais la demande à été la suivante
    il voudrait que après le click du bouton continuer le formulaire, ca valide l'adresse saisie, en la comparant avec celles des dossiers antérieure...Si une adresse est semblable, l'indiquer à la secrétaire qui entre les dossiers qu'il y a possibilité de doublons pour un sinistre (Il se peut que ce soit une autre réclamation par contre ex: sinistre causé par le vent, et 1 ans plus tard c'est l'eau qui a causé le sinistre) mais le type de sinistre n'est pas a valider...simplement l'adresse de la perte

    Je me demande un peu comment faire
    Actuellement, j'ai une classe pour conserver les information déjà entrer...je ne fais pas d'insert en bdd immédiatement, seulement à la fin du formulaire (il est sur 2 page d'affichage)
    J'ai pensé faire une page tampons pour valider les adresse et passe une variable dans l'url que je récuprerais en GET par la suite et indiquerais s'il y a "possibilité de " doublons seulement

    Ma requete me cause également probleme car des dossier actuellement il y en a 16000 d'ouvert et une 100taine par semaine se rajoutant
    donc ca peut etre fastidieux de chercher sur 5 champs en meme temps

    Des suggestion pour l'alert et la recherche et la manière de procéder?
    merci de vos conseils

  2. #2
    Membre expérimenté
    Avatar de FloMo
    Homme Profil pro
    Freelance iOS
    Inscrit en
    Juillet 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Freelance iOS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 726
    Points : 1 511
    Points
    1 511
    Par défaut
    Essaye de clarifier ta question, j'ai pas tout compris. Essaye de clarifier aussi ton code, j'ai l'impression que tu pars dans une usine à gaz énorme.

    A partir de ce que j'ai compris, je te conseillerais ceci :
    - sauvegarder les données qui transitent entre les pages avec des cookies de session,
    - vérifier la validité des données à l'affichage de la page de formulaire.

    Par exemple :
    - à l'affichage de la première page, tu testes si des erreurs doivent être affichées,
    - à la validation de la première page :
    - si tout va bien, tu affiches la seconde page,
    - sinon, tu affiches la première page en faisant passer le message d'erreur grâce au cookie de session.
    - tu fais la même chose pour la seconde page.

    Surtout, sépare bien toutes les étapes : tu trouveras beaucoup plus facilement la solution.

  3. #3
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    merci pour tes conseils
    en fait j'ai développer un peu ladessus
    Voilà je filtre d'abord sur le code postal et sur la date d'ouverture de dossier
    ca élimine considérablement le nombre de valeurs retourner par ma requete
    voici ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    if($codePost != ""){
    	//Le code postal est spécifier on fait une recherche sur ce champs
    	//Pour couper le plus de réultats possible
    	$strScript = "SELECT dossierID, versionDossier, civiquePerte, ruePerte, villePerte, clientAssureNom, clientAssurePrenom, DATE_FORMAT(ouvertureDossier,'%d/%c/%Y') AS ouverture ";
    	$strScript .= "FROM tbldossier ";
    	$strScript .= "INNER JOIN tblclientassure ON tbldossier.clientassurerID = tblclientassure.clientAssureID ";
    	$strScript .= "WHERE cpPerte = '".$codePost."' AND ouvertureDossier BETWEEN DATE_SUB(NOW(),INTERVAL 30 DAY) AND NOW()";
     
    	$req = $objCon->dbQuery($strScript);
    	if(mysql_num_rows($req) > 0){
    		//Entre ici il y a plusieur réclamation avec le meme code postal...
    		//On vérifie s'il y en a avec une adresse semblable et ville
    		echo"OUI avec meme code ".mysql_num_rows($req)."<br>";
    		$newAddress = $_SESSION['newDossier']->getValeur("ruePerte");
    		$newTown = $_SESSION['newDossier']->getValeur("villePerte");
     
    		while($res = mysql_fetch_array($req)){
    			if($_SESSION['newDossier']->getValeur("civiquePerte") == $res['civiquePerte']){
    				//$returnedAddress = $res['ruePerte'].', '.$res['villePerte'];
    				echo ressemblance($newAddress, $res['ruePerte']).'---Ville---';
    				echo ressemblance($newTown, $res['villePerte']).'<br>';
    			}
    		}
    	}
    	else{
    		//Entre ici il y a auncue réclamation avec le meme code postal...
    		echo"NON aucune réclamation avec ce code ".mysql_num_rows($req)."<br>";
    	}
    Voici le code de la fonction pour comparer les adresses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    function ressemblance($chaine_recherchee, $chaine_de_contenu) {
      //on supprime des caracteres de la chaine recherchée, n'entrant pas en compte dans le calcul de la ressemblance.
      //trim() sert a supprimer les espaces potentielles en debut et fin de chaine.
      //et strtolower() renvoie la chaîne en minuscules
      echo $chaine_recherchee.'>>>>'.$chaine_de_contenu.'->>>';
      //on renvoie aussi la chaîne de contenu en minuscules et on explose les chaines, pour obtenir des tableaux
      $explode_contenu = explode(" ", strtolower(trim(str_replace(array(".", ",", ";", ":" ), "", $chaine_de_contenu))));
      $explode_cle = explode(" ", strtolower(trim(str_replace(array(".", ",", ";", ":" ), "", $chaine_recherchee))));
    //on compte le contenu des tableau    
        $count_tab_cle = count($explode_cle);
        $count_tab_contenu = count($explode_contenu);
     
    //on compare les tableaux 	
    	for($i = 0; $i != $count_tab_contenu; $i++) $pointage[$i] = (in_array($explode_contenu[$i], $explode_cle))?1:0; 
     
    // on calcule la somme des valeurs du tableau, et on la retourne sous forme de pourcentage
     return round(((array_sum($pointage)/$count_tab_contenu)*100), 2) . "%";
    }
    Voilà..en gros ca me retourne cela pour l'instant puisque je fait mes teste
    mais c'est mon cheminement sur ce probleme
    SELECT dossierID, versionDossier, civiquePerte, ruePerte, villePerte, clientAssureNom, clientAssurePrenom, DATE_FORMAT(ouvertureDossier,'%d/%c/%Y') AS ouverture FROM tbldossier INNER JOIN tblclientassure ON tbldossier.clientassurerID = tblclientassure.clientAssureID WHERE cpPerte = 'j0r 1t0' AND ouvertureDossier BETWEEN DATE_SUB(NOW(),INTERVAL 30 DAY) AND NOW()
    OUI avec meme code 2
    beaulieu>>>> Beaulieu->>>100%---Ville---Prévost>>>>Prévost->>>100%
    beaulieu>>>> Beaulieu->>>100%---Ville---Prévost>>>>Prévost->>>100%
    Il va me rester a jouer un peu avec les chiffre a voir qu'est ce qui est significatif...dans l'exemple ca donne 100%
    en voici un autre
    SELECT dossierID, versionDossier, civiquePerte, ruePerte, villePerte, clientAssureNom, clientAssurePrenom, DATE_FORMAT(ouvertureDossier,'%d/%c/%Y') AS ouverture FROM tbldossier INNER JOIN tblclientassure ON tbldossier.clientassurerID = tblclientassure.clientAssureID WHERE cpPerte = 'j0r 1t0' AND ouvertureDossier BETWEEN DATE_SUB(NOW(),INTERVAL 30 DAY) AND NOW()
    OUI avec meme code 1
    du lac-renaud>>>> Chemin du Lac-Renaud->>>66.67%---Ville---prévost>>>>Prévost->>>100%

Discussions similaires

  1. [Débutant] Créer une page HTML qui valide des attributs
    Par sebpsi dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/03/2007, 13h30
  2. Formulaire : changer de page après avoir validé
    Par shaynee dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/01/2007, 11h38
  3. Validation d'adresses mail
    Par Alyx² dans le forum Delphi
    Réponses: 4
    Dernier message: 20/07/2006, 15h48
  4. changer l'icone d'une page dans la barre d'adresse/bookmark
    Par Draganthyr dans le forum Webdesign & Ergonomie
    Réponses: 2
    Dernier message: 10/06/2005, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo