Apostrophe, php et mysql

Eléphant du PHP | 440 Messages

23 déc. 2006, 12:47

Bonjour,

dans ma base mysql, j'ai une liste (set) avec différents critères à définir dont 'Système d'information'. Si je le tape tel quel, phpmyadmin me renvoie un message d'erreur. Si je tape 'Système d\'information', c'est ok.
Sauf que dans l'affichage de ma page web, rien n'apparaît.

Finalement, j'ai écrit 'Système d information'. Dans phpmyadmin c'est bon. Et sur internet, ça affiche Système d information.

Comment faire pour afficher l'apostrophe ?
Merci pour vos réponses éclairées.
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

23 déc. 2006, 12:52

As-tu essayé le double quote ?

Code : Tout sélectionner

système d''information

Eléphant du PHP | 440 Messages

23 déc. 2006, 13:13

As-tu essayé le double quote ?

Code : Tout sélectionner

système d''information
Quand je fais ça, apparemment la mise à jour se fait :
UPDATE `organismes` SET `THEMES` = 'Bureautique - Internet,Comptabilité - Gestion - Finance - Paie,Informatique - Système d''''information,Langues,Multimedia- Infographie - Dessin technique' WHERE `REF` =1 LIMIT 1 ;
Mais en fait non : ce critère que je sélectionne pour s'afficher sur internet ne s'affiche, et pour cause, il ne reste pas sélectionné dans phpmyadmin.
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

23 déc. 2006, 13:15

'Bureautique - Internet,Comptabilité - Gestion - Finance - Paie,Informatique - Système d''''information,Langues,Multimedia- Infographie - Dessin technique'
Pourquoi as-tu 4 simples quotes pour "d'information" ? Mets en juste deux.

ViPHP
ViPHP | 1961 Messages

23 déc. 2006, 13:25

Bonjour,

Tu peux aussi utiliser mysql_real_escape_string() qui protègera tous les autres acractères qui en ont besoin aussi.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 440 Messages

23 déc. 2006, 13:29

'Bureautique - Internet,Comptabilité - Gestion - Finance - Paie,Informatique - Système d''''information,Langues,Multimedia- Infographie - Dessin technique'
Pourquoi as-tu 4 simples quotes pour "d'information" ? Mets en juste deux.
Pourquoi y en a 4 ? Je sais pas parce que j'ai tapé '' qui s'est transformé en \'
Débutant complet en php/mysql. Merci pour votre aide.

Eléphant du PHP | 440 Messages

23 déc. 2006, 13:30

Bonjour,

Tu peux aussi utiliser mysql_real_escape_string() qui protègera tous les autres acractères qui en ont besoin aussi.
ca veut dire que je mets d\'information dans phpmyadmin et un code php sur mes pages ?
uniquement ce code
mysql_real_escape_string() 
suffit ?
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
ViPHP | 1961 Messages

23 déc. 2006, 13:43

Re,

Non,

Si tu fais ton insertion ou modification via phpMyAdmin tu dois utiliser la méthode que te donne charabia

Si tu le fais via PHP c'est mysql_real_escape_string()
Exp.
Sous phpMyAdmin

Code : Tout sélectionner

Système d''information
Sous PHP
mysql_real_escape_string('Système d'information')
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 440 Messages

23 déc. 2006, 13:52

le problème est que la méthode phpmyadmin ('') ne fonctionne pas. Pourquoi je sais pas mais ca ne marche pas.

la méthode php ne va fonctionner que pour 1 critère. Si j'ai une apostrophe par ailleurs, il faudra modifier le code.
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
ViPHP | 1961 Messages

23 déc. 2006, 13:57

A priori, tu ne sais jamais ce que l'utilisateur va saisir.
Cette méthode fonctione dans tous les cas.
Avec les apostrophes, les \n, \r, .....
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 440 Messages

23 déc. 2006, 13:59

ALTER TABLE `organismes` CHANGE `THEMES` `THEMES` SET( 'Achat - Approvisionnement', 'Agro-alimentaire - Agriculture', 'Artisanat', 'Assurance - Banque', 'Audiovisuel - Média', 'Automobile - Aéronautique', 'Bilan de Compétences - VAE', 'BTP - Architecture', 'Bureautique - Internet', 'Collectivités - Secteur public', 'Commercial - Marketing - Vente', 'Communication', 'Comptabilité - Gestion - Finance - Paie', 'Conflits - Violences - Malveillance', 'Culture - Esthétique - Mode', 'Développement personnel - Coaching', 'Droit - Fiscalité - Economie', 'Edition - Imprimerie - Presse', 'Environnement', 'Formation - Enseignement - Pédagogie', 'Gestion de Projet', 'Grande Distribution - Commerce', 'Hôtellerie - Restauration - Tourisme', 'Immobilier', 'Informatique - Système d information', 'Interculturel - Expatriation', 'Langues', 'Management - Direction', 'Mathématique - Statistique', 'Multimedia- Infographie - Dessin technique', 'Physique - Chimie - Biologie', 'Préparation aux concours', 'Qualité - Organisation', 'Ressources humaines-Personnel', 'Santé - Social', 'Secrétariat - Accueil - Assistance', 'SécuritéPrévention - Ergonomie', 'Sport - Loisirs - Animation', 'Techniques industrielles', 'Télécommunication', 'Transport' ) NOT NULL 
Voilà à quoi je suis revenu pour que ça fonctionne. 'Informatique - Système d information'
Dans ce cas, je peux sélectionner ce choix et il s'affiche sur internet.
En l'écrivant avec un \' ou '', le choix n'est pas pris en compte et donc ne s'affiche pas.
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
ViPHP | 1961 Messages

23 déc. 2006, 14:06

Ok,

Dans ce cas utilise les guillemets

Code : Tout sélectionner

"Système d'information"
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 440 Messages

23 déc. 2006, 14:29

Même problème
"Informatique - Système d'information" est transformé en
'Informatique - Système d\'information'

Et il n'y a plus moyen de sélectionner ce choix. Ou plutôt, je sélectionne et je fais exécuter. Mais si je vérifie dans Afficher, le choix n'est pas pris.
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
ViPHP | 1961 Messages

23 déc. 2006, 14:32

As-tu accès au serveur MySQL via le client mysql ?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 440 Messages

23 déc. 2006, 14:42

excuse-moi mais je ne comprends pas la question.
j'utilise phpmyadmin qui est sur le serveur de Free.
Débutant complet en php/mysql. Merci pour votre aide.