Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
Malgré les recherches , je ne parviens pas à obtenir le résultat que j'attends.
Je voudrais afficher la fiche de l'avocat en fonction de la recherche par nom.
(la requête suivante marche bien mais affiche tous les avocats).
$reponse = $bdd->query('SELECT * FROM avocats ');
celle affiche correctement également:
$reponse = $bdd->query("SELECT * FROM avocats WHERE nom LIKE 'c%'");
J'aimerais afficher la même chose mais avec uniquement le nom choisi:
comment remplacer 'c%' par la variable transmise dans l'url?
je précise que le nom choisi dans le formulaire, passe bien dans l'url : 127.0.0.1/scripts/annuaire/affichage.php?nom=toto
Une syntaxe que je ne parviens pas à trouver dans la masse des infos du web.
merci d'avance!
Dernière modification par kayorn (28-02-2014 11:10:56)
Hors ligne
Saluton,
Tout d'abord évitons de relancer la guerre des étoiles.
Ensuite 127.0.0.1/scripts/annuaire/affichage.php?nom=toto doit donner 'toto' dans $_GET['nom']
Donc (avec toutes les précautions à prendre quant à l'utilisation des données en provenance de l'extérieur)
$reponse = $bdd->query("SELECT noms_des_colonnes_qui_vont_bien FROM avocats WHERE nom= '". $_GET['nom']."'");
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Saluton,
Tout d'abord évitons de relancer la guerre des étoiles.
J'ai viré l'étoile pour les noms des champs.
Et ça roule! mille merci!
Par ailleurs:
J'ai un doute profond concernant l'éventualité que le problème suivant surgisse :
L'internaute saisit , innocemment bien sûr Dupont avec T en croyant écrire Dupond avec D.
La requête ne va donc pas renvoyer Dupond qu'il croyait pourtant inscrit au Barreau!
Comment faire sortir Dupond de sa torpeur malgré lui?
Hors ligne
J'imagine que tu n'as rien contre un peu de lecture : L'art des « Soundex »
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Ca a l'air passionnant, mais pour l'instant je galère avec le basique:
J'ai maintenant un : Notice: Undefined index: nom in je déclare pourtant $nom (...didjiu!) dans ma page d'affichage.
Tu n'aurais pas un lien vers un tuto sur ce genre de scripts basiques? c'est bien joli d'apprendre PHP, alors autant le faire avec des trucs bien expliqués pour les neuneu.
try
{
// Connexion MySQL
$bdd = new PDO('mysql:host=localhost;dbname=annuaire', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur.
die('Erreur : '.$e->getMessage());
}
//récupération des valeurs des champs:
//nom:
$nom = $_GET["nom"] ;
//prenom:
$prenom = $_GET["prenom"] ;
//competence :
$competence = $_GET["competence"] ;
//adresse 1:
$adresse_1 = $_GET["adresse_1"] ;
//adresse 2:
$adresse_2 = $_GET["adresse_2"] ;
//adresse 3:
$adresse_3 = $_GET["adresse_3"] ;
//code :
$code = $_GET["code"] ;
//ville:
$ville = $_GET["ville"] ;
//tel:
$tel = $_GET["tel"] ;
//fax:
$fax = $_GET["fax"] ;
//mail:
$email = $_GET["email"] ;
//web:
$web = $_GET["web"] ;
$nom = addslashes $_GET["nom"];
$prenom = addslashes($prenom);
$competence = addslashes($competence);
$adresse_1 = addslashes($adresse_1);
$adresse_2 = addslashes($adresse_2);
$adresse_3 = addslashes($adresse_3);
$code = addslashes($web);
$ville = addslashes($web);
$tel = addslashes($web);
$fax = addslashes($web);
$email = addslashes($email);
$web = addslashes($web);
// On récupère tout le contenu de la table avocats
$reponse = $bdd->query("SELECT * FROM avocats WHERE nom= '". $_GET['nom']."'");
//affichage
while ($donnees = $reponse->fetch())
{
?>
Hors ligne
$nom = addslashes $_GET["nom"];
Cette ligne devrait retourner un erreur de parsing, addslashes() étant une fonction dont les arguments doivent être parenthésés.
et à partir du moment où tu tranfères $_GET['nom'] dans $nom, cesse d'utiliser $_GET['nom'], sinon on ne va pas avancer.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
c'est bon j'ai trouvé l'erreur (si je te dis...)
Bon bref, j'en ai une autre maintenant, j'ai beau chercher, je n'ai plus les yeux en face des trous...
Parse error: syntax error, unexpected '[' in C:\wamp\www\annuaire\affichage.php on line 24
le bouzin complet sans le html.
//connection au serveur
$cnx = mysql_connect( "127.0.0.1", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "annuaire" ) ;
//récupération des valeurs des champs:
//nom:
$nom = $_GET['nom'];
//prenom:
$prenom = $_GET['prenom'];
//competence :
$competence = $_GET['competence'];
//adresse 1:
$adresse_1 = $_GET['adresse_1'];
//adresse 2:
$adresse_2 = $_GET['adresse_2'];
//adresse 3:
$adresse_3 = ['adresse_3'];
//code :
$code = $_GET['code'];
//ville:
$ville = $_GET['ville'];
//tel:
$tel = $_GET['tel'];
//fax:
$fax = $_GET['fax'];
//mail:
$email = $_GET['email'];
//web:
$web = $_GET['web'];
$nom = addslashes($nom);
$prenom = addslashes($prenom);
$competence = addslashes($competence);
$adresse_1 = addslashes($adresse_1);
$adresse_2 = addslashes($adresse_2);
$adresse_3 = addslashes($adresse_3);
$code = addslashes($code);
$ville = addslashes($ville);
$tel = addslashes($tel);
$fax = addslashes($fax);
$email = addslashes($email);
$web = addslashes($web);
// On récupère tout le contenu de la table avocats
$reponse = $bdd->query("SELECT nom,prenom,competence,adresse_1,adresse_2,adresse_3,code,ville,fax,tel,email,web FROM avocats WHERE nom= '". $_GET['nom']."'");
//affichage
while ($donnees = $reponse->fetch())
{
*********** html *************
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
?>
Hors ligne
$adresse_3 = ['adresse_3'];
T'as pas l'impression qu'il manque quelque chose, là ?
D'autre part, pourquoi continues-tu à utiliser $_GET['nom'] dans la requête au lieu de $nom ?
$reponse = $bdd->query("SELECT nom,prenom,competence,adresse_1,adresse_2,adresse_3,code,ville,fax,tel,email,web FROM avocats WHERE nom= '". $_GET['nom']."'");
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Cest ok, j'ai vu l'erreur (vraiment...) et j'ai modifié la requête.
Je te remercie.
Je n'ai plus de pb d'insertion double en ayant supprimé Easy Php.
Donc je continue et j'aurais sûrement d'autres questions
A bientôt.
merci et bon dimanche.
Hors ligne
Bonsoir,
J'ai repris tout le code avec un autre tuto (tant qu'à faire...)
J'ai un problème que j'avais évoqué plus haut mais que j'avais mal évalué.
Dans un cabinet d'avocats, 2 frères ou sœurs peuvent être associés. Le test du nom uniquement n'est pas valable.
Comment et à quel endroit vérifier nom et prénom.
voici le script:
<?php
/* Connexion à la base de données avec PDO */
include("MySQL_PDO_connect.php");
$nom = $_GET['nom'];
$prenom = $_GET['prenom'];
$competence = $_GET['competence'];
$adresse_1 = $_GET['adresse_1'];
$adresse_2 = $_GET['adresse_2'];
$adresse_3 = $_GET['adresse_3'];
$tel = $_GET['tel'];
$fax = $_GET['fax'];
$code = $_GET['code'];
$ville = $_GET['ville'];
$email = $_GET['email'];
$web = $_GET['web'];
// On ajoute une entrée dans la table liste à l’aide d’une requête préparée
$req = $dbh->prepare('INSERT INTO avocats(nom,prenom,competence,adresse_1,adresse_2,adresse_3,tel,fax,code,ville,email,web) VALUES(:nom, :prenom,:competence,:adresse_1,:adresse_2,:adresse_3,:tel,:fax,,:code,:ville,:email,:web, )');
$req->execute(array(
'nom' => $nom,
'prenom' =>$prenom,
'competence' =>$competence,
'adresse_1' =>$adresse_1,
'adresse_2' =>$adresse_2,
'adresse_3' =>$adresse_3,
'tel' =>$tel,
'fax' =>$fax,
'code' =>$code,
'ville' =>$ville,
'email' =>$email,
'web' =>$web
));
echo '<span style="color: red">Le visiteur a bien été ajouté !</span>';
// Fermeture de la connexion
$dbh = NULL;
}
?>
Hors ligne
Dans un cabinet d'avocats, 2 frères ou sœurs peuvent être associés. Le test du nom uniquement n'est pas valable.
Comment et à quel endroit vérifier nom et prénom.
La question fait probablement sens pour toi mais, en ce qui me concerne, et au vu du code joint, je ne vois pas à quoi elle se rattache.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
très juste, j'ai oublié de préciser que je ne voulais pas pouvoir insérer deux fois le même avocat. Le test du nom ne suffit donc pas car je pourrais insérer Durant Jean et pas Durant Paul . Par contre, si le nom + le prénom sont déjà dans la base, le script doit me bloquer l'insertion.
Dernière modification par kayorn (08-03-2014 20:34:18)
Hors ligne
Bonjour,
Si le test du nom ne vous suffit pas je doute que le couple {Nom,Prénom} soit une Clé Candidate pertinente car les homonymes existent et même ayant la même date de naissance. Comme suggéré dans le lien fourni, en sus de la clé primaire technique (en général auto-incrémentée), si vous souhaitez une clé candidate pertinente pour l'utilisateur, comme l'a suggéré SQLpro le numéro de sécurité sociale peut être un bon choix si votre application s'en tient à gérer des cabinets d'avocats enregistrés sur le territoire Français.
++
Dernière modification par Jc (09-03-2014 01:55:29)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour,
Je comprends très bien que le couple choisi ne suffise pas dans l'optique de la création d'un annuaire gérant le territoire français. Heureusement car vu mon niveau, j'aurais eu tout intérêt à en confier le développement à un spécialiste!
Non, je ne vais entrer que les avocats du Barreau d'Ajaccio, soit environ une centaine d'enregistrements, mais je tenais à profiter du petit projet pour apprendre à écrire des petits scripts qui tiennent à peu près la route.
Hors ligne
Pages :: 1