transformation en majuscule

Eléphant du PHP | 258 Messages

04 juin 2008, 16:54

bonjour

j'utilise la fonction strtoupper pour transformer des mots en majuscule.
malheureusement, cela m'affiche en résultat vide
savez vous pourquoi?
merci de vos réponses
voici le code php

<?

$villeind = strtoupper($villeind);
$requete = "UPDATE inscriptions SET villeind = '".$villeind."' WHERE typeparticipant = 'individuel'";


// exécution d'une requête
$query = mysql_query($requete);

?>
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Mammouth du PHP | 1353 Messages

04 juin 2008, 17:00

Quand tu dis que cela affiche un résultat vide tu parles dans la base de données ou dans la variable ?

Parce que normalement si tu fais un :
$villeind = strtoupper($villeind); 
echo $villeind;
alors ta variable sera en majuscules.

Par contre ton update dans la base peut ne pas marcher pour d'autres raisons... (notamment si il ne trouve pas de valeur avec typeparticipant = 'individuel'...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

d0m
Mammouth du PHP | 1141 Messages

04 juin 2008, 17:02

salut,

pour debugguer, remonte jusqu'au dernier contenu qui est exact.
vérifie bien partout :
echo 'contenu 1 : '.$villeind.'<BR>';
$villeind = strtoupper($villeind); 
echo 'contenu 2 : '.$villeind.'<BR>';
$requete = "UPDATE inscriptions SET villeind = '".$villeind."' WHERE typeparticipant = 'individuel'"; 
echo 'contenu requete : '.$requete.'<BR>';

// exécution d'une requête 
$query = mysql_query($requete); 

?>


Eléphant du PHP | 258 Messages

04 juin 2008, 17:14

après vérification sur conseil de dOm

c'est dans la base de données dont je parle...

avant j'avais des données en minuscule
après cette requête, ces données ont disparu comme s'ils sont en NULL

donc WHERE typeparticipant = 'individuel' est correct puisque je l'ai vérifié sur le serveur de mysql

Code : Tout sélectionner

mysql> SELECT villeind, nomind from inscriptions where typeparticipant = 'individuel'; +-------------------+--------+ | villeind | nomind | +-------------------+--------+ | thiais | AURIEL | | brie-comte-robert | HOMBEL | +-------------------+--------+ 2 rows in set (0.00 sec)
après requête

Code : Tout sélectionner

mysql> SELECT villeind, nomind from inscriptions where typeparticipant = 'individuel'; +----------+--------+ | villeind | nomind | +----------+--------+ | | AURIEL | | | HOMBEL | +----------+--------+ 2 rows in set (0.00 sec)
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Mammouth du PHP | 2937 Messages

04 juin 2008, 17:22

Le problème vient donc de la variable $villeind, qui est vide, puisque la requête de mise à jour est générée comme suit :

Code : Tout sélectionner

UPDATE inscriptions SET villeind = '' WHERE typeparticipant = 'individuel'
D'où l'effacement du nom des villes.

Eléphant du PHP | 258 Messages

04 juin 2008, 17:31

ah je vois

et avec cette nouvelle requete? c'est la bonne?
d'ailleurs, j'ai verifié
mm resultat!
$requete = "UPDATE inscriptions SET villeind = '".$POST['villeind']."' WHERE typeparticipant = 'individuel'";
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Mammouth du PHP | 2937 Messages

04 juin 2008, 17:51

$requete = "UPDATE inscriptions SET villeind = '".$POST['villeind']."' WHERE typeparticipant = 'individuel'";
C'est $_POST, avec un _. ;)

Cela dit, MySQL offre la fonction UPPER(). Essaie donc la requête suivante :

Code : Tout sélectionner

UPDATE inscriptions SET villeind = UPPER(villeind) WHERE typeparticipant = 'individuel'

ViPHP
ViPHP | 4674 Messages

04 juin 2008, 23:08

Hey :),

Je vais peut-être paraître pénible mais ça ne sert à rien de mettre le nom des villes en majuscule, car typographiquement, ce n'est pas correct.

En effet, si on se réfère à la plus récente édition du Code officiel géographique publié par l'Insee, la graphie des toponymes de la France ne prévoit pas que l'on mette le nom des régions, départements, arrondissements, cantons, et communes en majuscule. Si on doit vulgariser la chose, on dira que seule la première lettre doit être en majuscule (dans le cas d'un mot non composé).
Maintenant, si on doit retenir quelques règles principales, on pourrait citer que :
  • tous les substantifs et adjectifs prennent une majuscule ;
  • les articles, prépositions, conjonctions et adverbes prennent une majuscule en début de nom et une minuscule à l’intérieur du nom, à l’exception de Hors, qui prend toujours une majuscule, et des prépositions situées en fin de toponyme, qui prennent également une majuscule ;
  • les toponymes officiels composés comportent un trait d’union entre tous les termes, sauf après l’article initial ou lorsqu’il y a une apostrophe. Exemples : La Roche-sur-Yon, Villeneuve-d'Ascq. Exceptions : Pays de la Loire, Territoire de Belfort et l’espace après « Côte » dans Provence-Alpes-Côte d'Azur.
Donc te prend pas la tête ;-).

Au pire, si on se réfère au dictionnaire de l'Académie Françaizeuh adaptée à l'Informatique (c'est pas le nom officiel mais je ne retrouve plus le document), on tolère des petites majuscules.
Les petites majuscules peuvent s'obtenir avec : font-variant: small-caps; en CSS.

Voilà :).

PS : on peut trouver des compléments d'information sur Wikipédia.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Invité
Invité n'ayant pas de compte PHPfrance

05 juin 2008, 08:43

Merci Brito
ça marche


Merci HyWaN pour l'explication
oui, j'allais le faire mais d'abord, je voulais tester une requête avec un mot entier en majsucule pour voir
et ensuite je teste la première lettre en majuscule et le reste en minuscule comme vous l'avez dit.

je reviens tout à l'heure

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

05 juin 2008, 11:28

je reviens tout à l'heure
Tu n'oublieras pas le Résolu ;)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute