Aller au contenu

sandrinoo

Hubmaster
  • Compteur de contenus

    172
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par sandrinoo

  1. Salut les gars et merci beaucoup. 1/ J'ai pu télécharger le fichier mais il me fait un message d'erreur : Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2002): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 2/ c'était pas ce que je voulais : j'arrive maintenant à changer les accents au coup par coup avec des replaces imbriqués dans le select; Ce que je souhaitais : c'était utiliser dans le select la fonction Iconv() pour supprimer tous les accents d'un seul coup. C'est possible ou pas ? Je sais je commence à être pénible la...
  2. Portekoi merci beaucoup, mais je n'ai pas la permission, semble-t-il, pour télécharger ton fichier test.php
  3. Nicolas, non, il me le faudrais dans le select...
  4. Merci Nicola, de mon côté, j'insert dans mon script cela : setlocale(LC_CTYPE, 'fr_FR.UTF-8'); echo iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', 'éèê'); // résultat : eee et cela fonctionne : les accents disparaissent. En fait mon problème est l'implémentation dans un select...
  5. Je connaissais pas cette fonction et visiblement je l'ai. J'ai essayé plein de trucs du style : setlocale(LC_CTYPE, 'fr_FR.UTF-8'); $reponse = mysql_query("SELECT prenom, iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', prenom) AS prenom FROM XXXXX "); Mais ca fonctionne pas. Je sais que la base ICONV est bonne car ça fonctionne avec un echo si c'est pas mis dans un select.
  6. Mon sauveur ! Viens là que je t'embrasse Dan ! Ca fonctionne ! C'est vrai que j'aurais pu y penser quand même... Et pour tous les accents en même temps, je fais un code du style : REPLACE(REPLACE(prenom, 'é', 'e') , 'ê', 'e') et ainsi de suite pour tous les accents... Tu connais Dan, une solution plus pratique et moins lourde que celle-là ?
  7. Je pensais qu'en laissant reposer, je trouverais la soluce. Mais rien à faire. Bon je résume maintenant clairement la situation actuelle : 1. un replace (par le script php) sur un caractère normal de la bdd mysql fonctionne correctement (style changer le "a" en "e") 2. Mais impossible de faire un replace (par le script php) sur le moindre accent de la bdd mysql (style changer le "é" en "e") 3. alors qu'un "replace" accents directement via phpmyadmin marche nickel 4. pas de caractère "invisible" (test fait avec : Notepad++ puis "View> Show Symbol > View all characters") Je comprends pas. Donc je vous donne ci-dessous le script php : <?php mysql_connect("$serveur", "$user", "$mdp"); mysql_select_db("$db"); $reponse = mysql_query("SELECT prenom, REPLACE(prenom, 'é', 'e') AS prenom FROM XXXXXX "); while ($result = mysql_fetch_array($reponse) ) {echo $result['prenom']."<br>"; } ?> et la table avec le champ associé : -- http://www.phpmyadmin.net -- -- Version du serveur: 5.1.66 -- Version de PHP: 5.3.8 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; -- -- Base de données: `XXXXXXX` -- -- -------------------------------------------------------- -- -- Structure de la table `XXXXXXX` -- CREATE TABLE IF NOT EXISTS `XXXXXXXX` ( `prenom` varchar(90) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Contenu de la table `XXXXXX` -- INSERT INTO `XXXXXXXX` (`prenom`) VALUES ('stéphane'); Si il y avait une âme charitable qui voudrait bien se pencher sur mes problèmes... En fait je cherche à éradiquer tous les accents.
  8. Peut-être le type varchar ? champs varchar(90) latin1_swedish_ci (NULL)Oui (defaut)NULL
  9. Portekoi, peut-être dois-je antislasher quand il y a un espace blanc dans le champ de ma BDD ? Ou un truc de ce genre ? Qu'en penses-tu ?
  10. Merci Portekoi, voilà les données concernant ma base de données : MySQL connection collation : utf8_unicode_ci parametre affichage : francais table : type : MyISAM interclassement : latin1_swedish_ci
  11. J'ai tout testé, comprends vraiment pas : - Les champs qui contiennent un espace blanc m'interdisent de faire un REPLACE dessus (à parir de mon script php) - même si je veux changer avec le replace un autre caractère que l'espace blanc (par exemple une lettre) - alors que sur les autres champs sans espace blanc, je peux changer n'importe quel caractère avec un replace Et curieusement un Update replace permet de changer l'espace blanc sur la base de données Phpmyadmin Quelqu'un voit la solution. Car moi je vais abandonner... PS : ah oui et même problème avec l'apostrophe '
  12. Captain, j'ai copié dans le sql de phpmyadmin ce que tu m'as donné, j'ai fait executer et j'obtiens bien testdetexte comprends pas pourquoi cela ne marche pas avec mon champs à partrir du php ?
  13. Merci d'apporter une réponse Portekoi. J'ai fait ce que tu m'as dit. Copier dans la BD mysql phpmyadmin le champs avec un espace puis coller dans notepad++ View> Show Symbol > View all characters Mais toujours un espace blanc. J'ai découvert que le champs était enregistré avec la fonction mysql_real_escape_string Peut-être est-ce à cause de cela ? Mais comment faire alors mon replace ?
  14. Merci une fois de plus Captain_torche ! Cela fonctionne nickel quand c'est un caractère style : SELECT champs, REPLACE(champs, 'u', '') AS champs FROM matable mais pas quand on veut traiter un espace blanc : SELECT champs, REPLACE(champs, ' ', '') AS champs FROM matable Pourtant quand j'affiche les données de ma base de données c'est bien un espace blanc qui sort dans le champs (idem quand je vais en direct sur la bd avec phpmyadmin).
  15. Bonjour à toutes et à tous, je voudrais quand j'appelle ma base de données mysql, remplacer tous les espaces par rien . J'ai donc créé une fonction php : function fct($string){ $find = " "; $replace = ""; return(strtr($string,$find,$replace)); } que j'utilise comme ceci dans mon script php (notez que je ne souhaite pas intervenir directement sur la base avec phpmyadmin) : mysql_connect("$serv", "$user", "$mp"); mysql_select_db("$db"); $reponse = mysql_query('SELECT champs, fct(champs) FROM matable'); while ($resultat = mysql_fetch_array($reponse) ) { echo $resultat['champs'];} Cela ne modifie rien du tout. Où est le problème ? Merci d'avance si une personne se penche sur mon problème... sandy.
  16. merci Aenoa et Dadou pour vos réponses. Ah bon, je pensais qu'ouvrir et fermer sans arrêt des balises php (solution 1 de mon code) pouvait être plus long en exécution sur une page entière de code...
  17. sandrinoo

    Rapidité code php ?

    Bonsoir à toutes et à tous, Un question qui doit vous paraître évidente, mais pas pour moi. Les 2 codes dessous génèrent le même résultat. Le premier est le plus correct et le plus lisible mais quel est celui qui génère le résultat le plus rapide ? <div id ="bloc"> ceci est une variable : <?php echo $var; ?> et celle la aussi : <?php echo $var2; ?>. </div> <?php echo "<div id =\"bloc\"> ceci est une variable : ".$var." et celle la aussi : ".$var2."</div>" ?> merci pour votre réponse. Sandy
  18. Encore une fois bravo SStephane. Et merci ! Plein de bonnes choses pour ce week-end !
  19. Désolée, mais je me permet de revenir pour compliquer un peu la chose. Soit mon array comme ceci : Array ([0] => Array ( [0] => 117 [1] => green [2] => A )[1] => Array ( [0] => 12 [1] => green [2] => B )[2] => Array ( [0] => 45 [1] => red [2] => B )[3] => Array ( [0] => 5 [1] => yellow [2] => A )[4] => Array ( [0] => 78 [1] => red [2] => A )) J'aimerai ajouter une 3eme condition au code que vous avez réalisé à savoir : Trier array : 1. en priorité si valeur couleur est red $a[1] 2. puis sur la lettre ordre alphabétique $a[2] (déjà codé) 3. puis sur le nombre décroissant $a[0] (déjà codé) En fait que le tableau trié donne cela : [4] => Array ( [0] => 78 [1] => red [2] => A )[2] => Array ( [0] => 45 [1] => red [2] => B )[0] => Array ( [0] => 117 [1] => green [2] => A )[3] => Array ( [0] => 5 [1] => yellow [2] => A )[1] => Array ( [0] => 12 [1] => green [2] => B ) J'ai essayé de tester des codes de ce style sans résultat : function my_comp($a,$ {if($a[1]=== 'red']) {if($a[2]===$b[2]) return 0;return ($a[2]<$b[2])? -1 : 1;} {if($a[0]===$b[0]) return 0;return ($a[0]>$b[0])? -1 : 1;} return ($a[1]>$b[1])? 1 : -1;} usort($arr, 'my_comp');
  20. J'adore ! Merci le code marche ! J'aurais pas été capable de l'écrire. Maintenant que c'est fait, ça à l'air simple : je me pencherais dessus ce soir après le boulot pour bien le comprendre. Un grand merci à SStephane et SFTA26700. Webmaster-hub est mon site de prédilection quand j'ai vraiment besoin d'aide en php (après plusieurs heures de recherche personnelle infructueuse) ! Merci encore. PS : pour info, est-ce cela une "comparaison de types en php" ? Est-ce le terme utilisé pour que j'effectue une recherche ?
  21. 1/ c'est normal, j'avais simplifié le code pour mieux comprendre (j'avais supprimé l'item color) En fait le vrai code résultant de la print_r($tab) est : Array ( [0] => Array ( [0] => 117 [1] => green [2] => A ) [1] => Array ( [0] => 12 [1] => green [2] => B ) [2] => Array ( [0] => 45 [1] => red [2] => B ) [3] => Array ( [0] => 5 [1] => yellow [2] => A ) ) 2/ Pas de souci pour la parenthèse c'est une erreur de recopie pour mon post 3/ en fait il n'y a pas de message d'erreur En fait ça à l'air de marcher, mais comme je vous ai donné un code simplifié avec 2 items à la place de 3items, et bien ca m'effectue le classement sur le 1er et le 2 eme item alors que je voudrais le classement sur le 1er et le 3eme item (je ne suis pas sûre d'être très clair...) comment changer alors le code que vous m'avez fait ?
  22. Désolée de ne pas vous avoir répondu plus tôt SStephane et SFTA26700 : en tout cas, un grand merci de vous intéresser à mon cas. Voici le code : foreach($go->item as $item) {$tab[] = array((string)$item['product'],(string)$item->color,(string)$item->label;} echo '<pre>'; print_r($tab); echo '</pre>'; en fait les chiffres c'est $item['product'] et les lettres A,B c'est $item->label
  23. SStephane chapeau ! Je suis incapable actuellement de pondre un code comme ça. Mais ton code fonctionne pour ce tableau de depart : $arr = array( array(117,'A'), array(12,'B'), array(45,'B'), array(5,'A'), ); mais pas pour le mien qui est présenté de cette façon : $arr = Array ( [0] => Array ( [0] => 117 [1] => A ) [1] => Array ( [0] => 12 [1] => B ) [2] => Array ( [0] => 45 [1] => B ) [3] => Array ( [0] => 5 [1] => A ) ) et qui dois finir exactement comme cela : $arr = Array ( [0] => Array ( [0] => 117 [1] => A ) [1] => Array ( [0] => 5 [1] => A ) [2] => Array ( [0] => 45 [1] => B ) [3] => Array ( [0] => 12 [1] => B ) ) Je doute que j'y arrive seule
  24. Merci SStephane ! Je vais l'adapter à mon code pour le tester...
  25. Oui seb, merci de m'avoir répondue, c'est exactement cela. Comment il faut que je fasse ?
×
×
  • Créer...