Page 1 sur 1

comment : saisie dans formulaire soit automatiquement en maj

Posté : 30 sept. 2008, 15:44
par elrime
Bonjour à tous :)

j'ai un formulaire dans lequel mes chers collègues saisissent en minuscules des noms propres et des noms de société...

comment faire pour que la saisie dans la BDD soit automatiquement en majuscules ?

(le but étant de pouvoir faire du publipostage avec les données de la BDD sans que j'ai a repassé derrière presque toutes les saisies :p )

Merci d'avance de votre attention .

mon code étant :
<?php
//connection au serveur 
$cnx = mysql_connect( "localhost", "xxx", "xxx" ) ; 

//sélection de la base de données: 
$db = mysql_select_db( "ALCHIWEB" ) ; 

//récupération des valeurs des champs: 
$demande=$_POST["demande"] ; 
$societe=$_POST["societe"] ; 
$adresse1=$_POST["adresse1"] ; 
$adresse2=$_POST["adresse2"] ; 
$CP=$_POST["CP"] ; 
$ville=$_POST["ville"] ; 
$pays=$_POST["pays"] ; 
$famille=$_POST["famille"] ; 
$civilite= $_POST["civilite"] ; 
$nom = $_POST["nom"] ; 
$prenom= $_POST["prenom"] ; 
$tel= $_POST["tel"] ; 
$mobile= $_POST["mobile"] ; 
$fax=$_POST["fax"] ; 
$mail=$_POST["mail"] ; 
$message=$_POST["message"] ; 
//création de la requête SQL: 
$sql = "INSERT INTO ALCHIWEB (demande, societe, adresse1, adresse2, cp, ville, pays, famille, civilite, nom, prenom, tel, mobile, fax, mail, message, date) 
VALUES ( '$demande','$societe','$adresse1','$adresse2','$cp','$ville', '$pays', '$famille', '$civilite', '$nom', '$prenom', '$tel', '$mobile', '$fax', '$mail', '$message', NOW())"; 

$msg = "Merci de votre attention $civilite $nom, nous avons bien reçu les informations suivantes: \n\n"; 
$msg .= "Demande:\t$demande\n"; 
$msg .= "Société:\t$societe\n"; 
$msg .= "Famille:\t$famille\n"; 
$msg .= "Civilité:\t$civilite\n"; 
$msg .= "Nom:\t$nom\n"; 
$msg .= "Prenom:\t$prenom\n"; 
$msg .= "Adresse1:\t$adresse1\n"; 
$msg .= "Adresse2:\t$adresse2\n"; 
$msg .= "Code Postal:\t$cp\n"; 
$msg .= "Ville:\t$ville\n"; 
$msg .= "Pays:\t$pays\n"; 
$msg .= "Tel:\t$tel\n"; 
$msg .= "Mobile:\t$mobile\n"; 
$msg .= "Fax:\t$fax\n"; 
$msg .= "E-Mail:\t$mail\n"; 
$msg .= "Message:\t$message\n\n"; 
$msg .= "Merci de ne pas répondre à ce message: \n\n"; 
$msg .= "Retourner sur le site : http://www.alchimica.fr \n\n"; 
$recipient = "[email protected],"; 
$subject = "Demande auprès d'Alchimica.fr, société: $societe, $civilite $nom"; 
$headers = "Bcc: $mail\r\n"; 
mail($recipient, $subject, $msg, $headers); 


//exécution de la requête SQL: 
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;

Posté : 30 sept. 2008, 15:54
par Ryle
Soit au moment de l'insertion, soit lors de la récupération,
il te suffit d'utiliser les bonnes fonctions : strToUpper() en php ou UPPER() en sql :)

Posté : 30 sept. 2008, 16:07
par elrime
bon bha mon code est a présent:
 $sql = "INSERT  INTO ALCHIMICAWEB (demande, societe, adresse1, adresse2, cp, ville, pays, famille, civilite, nom, prenom, tel, mobile, fax, mail, message, date)
            VALUES ( '".strtoupper($demande)."','".strtoupper($societe)."','".strtoupper($adresse1)."','".strtoupper($adresse2)."','".strtoupper($cp)."','".strtoupper($ville)."', '".strtoupper($pays)."', '".strtoupper($famille)."', '".strtoupper($civilite)."', '".strtoupper($nom)."', '".strtoupper($prenom)."', '$tel',  '$mobile', '$fax', '$mail', '$message', NOW())";
 
çà a l'air lourd.. mais çà marche :)

Merci :)

Posté : 30 sept. 2008, 16:14
par Ryle
Tu peux également le faire au moment où tu récupères tes paramètres :)
$demande = strToUpper($_POST["demande"]);
...
Techniquement ça change absolument rien, mais ta requête restera plus simple à lire, et donc plus facile à maintenir ;)

Posté : 30 sept. 2008, 16:31
par elrime
je viens de tester l'autre possibilité

elle n'est pas négligeable, elle est même mieux car sur l'affichage de la page de révision, et le mail çà appairait aussi en majuscule, ce n'est pas mal du tout:D

encore une fois de tres bon conseil de la part de phpfrance ;)

Merci :D

Posté : 30 sept. 2008, 16:37
par albat
strToUpper() en php ou UPPER() en sql :)
Exact.
avec une petite préféréence pour le traitement en SQL, pour des raisons de performances.

Mais bon, on compte en pouièmes de seconde, là... :roll: