Vous n'êtes pas identifié(e).
Pages : 1
Re,
Ce n'est pas normal avec le script que j'ai écrit juste au dessus si la variable est vide on ne devrait pas voir apparaitre "Tel" ou "Fax".
Est tu sur que tes variables soient vides ?
Oui, j'ai la table sous les yeux et les champs sont bien vides.
Par contre avec !empty , ça fonctionne parfaitement! merci!
Bonjour,
Non, les chaînes 'Tel:' et 'Fax:' sont systématiquement affichées, même quand la variable est vide. J'avais déjà essayé avant d'essayer ton script.
Bonjour,
je ne vois pas pourquoi mais ça retourne parse error sur le point virgule.
Bonsoir,
J'ai un affichage de cet ordre:
<!-- Tel et Fax -->
<li class="telfax"><?php echo ('Tél: '.FormatTel($data['tel'])); ?> <?php echo ('Fax: '.FormatTel($data['fax'])); ?></li>
Je ne sais pas si c'est possible, mais je souhaiterais ne pas afficher Tél ou Fax si la variable correspondante est vide
A l'heure actuelle j'obtiens "Tél: - Fax: " si le cas survient.
Il faudrait carrément que ça saute la ligne si les 2 sont vides.
merci
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.
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.
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;
}
?>
C'est efficace en effet, mais pas facile d'en capter le mécanisme. je suppose que l'insertion des espaces se fait par "%s %s %s" ?
Il y a-t-il un mémo simplifié pour avoir les méthodes?
Sur le lien que tu m'as envoyé, c'est pas très clair pour moi.
j'ai jeté un oeil, c'est pas évident du tout.
Bonjour,
Voici la ligne qui renvoie 3 variables (adresses), j'aimerais les séparer avec un espace ou un tiret.
<!-- adresses -->
<li class="telFax"><?php $adresses = ($data['adresse_1'] . $data['adresse_2'] . $data['adresse_3']);
echo UCWORDS(strtolower($adresses));?> </li>
J'ai fait de nombreux essais qui plantent systématiquement.:|
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.
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
?>
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())
{
?>
Bonjour,
Je vous livre le script traitement complet.
Parelellement , je vais tester en ligne, j'ai l'impression que Easyphp déconne un peu ou alors c'est moi qui ne vois plus rien à force d'essayer.
J'ai ce message sur ma requête d'insert.
33495207293You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'adresse','20000','ajaccio','33495207293','','','')' at line 1
la requête:
$sql = "INSERT INTO avocats (nom, prenom, competence, adresse_1, adresse_2, adresse_3, code, ville, tel, fax, email, web) VALUES('$nom','$prenom','$competence','$adresse_1','$adresse_2','$adresse_3','$code','$ville','$tel','$fax','$email','$web')";
<?php
$str=NULL;
$str = str_replace("\n\n","\n",$str);
try
{
// Connexion MySQL
$bdd = new PDO('mysql:host=localhost;dbname=annuaire', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur.
die('Erreur : '.$e->getMessage());
}
// 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())
{
Re-bonjour!
Je viens de répondre dans la fenêtre précédente!
Plomodiern? j'avais un ami Breton de Plomodiern. Yann Yourn Nicolas
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?
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!
Bonjour,
on va y arriver! heureusement que je poste sur un forum débutants
Voilà le résultat de la requête "Show create table" et au cas où, le php.
CREATE TABLE `avocats` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`nom` varchar(255) NOT NULL,
`prenom` longtext NOT NULL,
`competence` longtext NOT NULL,
`adresse1` varchar(100) NOT NULL,
`adresse2` varchar(100) NOT NULL,
`adresse3` varchar(100) NOT NULL,
`code` varchar(100) NOT NULL,
`ville` varchar(100) NOT NULL,
`tel` varchar(100) NOT NULL,
`fax` varchar(100) NOT NULL,
`mail` varchar(100) NOT NULL,
`web` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=latin1
Le PHP
vous avez entièrement raison!
voilà les infos:
requête création et le résultat
bonne soirée
Bonjour,
J'ai un problème que je ne parviens pas à résoudre. Ma requête d'insert génère 2 lignes dans la table.
Une première correcte puis, juste en dessous, une seconde ligne vide. L'incrémentation se fait normalement.
Je bosse en local avec la dernière version d'Easy Php.
Est-ce un bug de Myadmin?
Merci d'avance.
Pages : 1