[Réglé] Soucis avec une requête SQL (remplacement chaine de caractère)

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans cette section.

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

[Réglé] Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar ayakos » 21 Sep 2018 à 09:56

Bonjour !

tout d'abord désolé si ce post n'est pas à sa place, je n'ai pas trouvé mieux.
Je cherche à résoudre une problématique de remplacement de chaine de caractère par une autre (ceci fait suite comme vous le savez peut-être à la fermeture de l'hébergeur d'images hostingpics récemment ; l'idée en gros est que je vais remplacer les occurrences de la chaine de caractère hostingpics par un nouveau chemin vers un serveur qui va accueillir plusieurs dossiers contenant mes sauvegardes des images (dossiers classés en fonction de la première lettre des fichiers images, je n'entre pas dans les détails mais ça vient du fait que sur le serveur ONE que j'utilise désormais comme serveur de sauvegarde d'images, c'est limité à 10000 images par dossiers. bref)

Mais ma question concerne le SQL. Je viens d'effectuer un petit test sur mon forum clone (mon forum de test) et je me suis assuré qu'il y ait bien une image postée avec cette chaine de caractère indiquée ci-dessous correspondant à hostingpics et à leur serveur img15 (fermé récemment donc l'image actuellement ne s'affichant plus)

ma requête est la suivante :

Code: Tout sélectionner
UPDATE phpbb_posts SET post_text = replace(post_text, 'http://img15.hostingpics.net/pics/8', 'http://www.immortal-wings.fr/save-hostingpics-8/8');


je suis donc sûr et certain qu'il y a des occurrences de la chaine de caractère que j'ai mise or ça me dit "aucune ligne affectée",
comment est-ce possible ?

voilà ce que j'ai (j'ai fais une capture d'écran dans le mode simulation de phpmyadmin)

Image

Merci d'avance pour votre aide
Modifié en dernier par ayakos le 29 Sep 2018 à 23:13, modifié 3 fois.
ayakos
Roi des posts
Roi des posts
 
Messages: 662
Enregistré le: 26 Mar 2005 à 16:03

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar cocooncrash » 21 Sep 2018 à 11:05

Bonjour,
rien a voir avec l'utilisation normale de phpbb, tu dois faire attention ou tu postes, ici c'est du coding, webmastering.

Je déplace ta demande.
decouvrez l'aide complete : ICI
découvrez les règles : La_bas

Pensez a ajouter le tag [réglé] en modifiant votre premier message s'il est résolu. Merci :wink:
Avatar de l’utilisateur
cocooncrash
Resp. des modérateurs
Resp. des modérateurs
 
Messages: 7925
Enregistré le: 07 Jan 2008 à 09:29
Localisation: dans un bocal en compagnie de nemo!!

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar Steph » 21 Sep 2018 à 11:21

Salut,

Il faut utiliser le %

Regarde un exemple ici : support-mises-a-jour-conversions-phpbb32/sujet210923.html?#p1650518

Tu test sur un forum test c’est une bonne chose :wink:
Avatar de l’utilisateur
Steph
Administrateur
Administrateur
 
Messages: 18955
Enregistré le: 29 Déc 2008 à 16:48
Localisation: Alsace / Bas-Rhin / France

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar ayakos » 21 Sep 2018 à 11:36

Merci pour la réponse très rapide et désolé pour l'erreur sur le positionnement du topic

mais je ne saisis pas bien, je dois mettre un
Code: Tout sélectionner
%
de chaque côté de la chaine de caractère ? j'ai testé mais ça ne marche pas,
j'ai testé comme ça , ce n'est pas ça ?

Code: Tout sélectionner
UPDATE phpbb_posts SET post_text = replace(post_text, '%http://img15.hostingpics.net/pics/8%', '%http://www.immortal-wings.fr/save-hostingpics-8/8%');


ou alors je dois rajouter un WHERE ? je ne saisis pas trop
ayakos
Roi des posts
Roi des posts
 
Messages: 662
Enregistré le: 26 Mar 2005 à 16:03

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar pierredu » 21 Sep 2018 à 12:10

Mettre un WHERE serait bien pour ne pas traiter tous les messages, car il doit bien y en avoir qui ne comprennent pas la chaîne de recherche.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1175
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar Steph » 21 Sep 2018 à 12:21

Regarde bien l'exemple que j'ai donné, il faut juste adapter a ton besoin.

Et en plus il y a un WHERE, ce qu'indique pierredu
Avatar de l’utilisateur
Steph
Administrateur
Administrateur
 
Messages: 18955
Enregistré le: 29 Déc 2008 à 16:48
Localisation: Alsace / Bas-Rhin / France

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar ayakos » 21 Sep 2018 à 14:00

J'ai fais ceci

Code: Tout sélectionner
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'http://img15.hostingpics.net/pics/8', 'http://www.immortal-wings.fr/save-hostingpics-8/8') WHERE `post_text` LIKE '%http://img15.hostingpics.net/pics/8%' ;


Mais j'ai toujours le même problème ça me renvoie 0 je ne comprend pas

et au fait à quoi servent les signes ` ils sont obligatoires ?
et le COLLATE utf8_bin LIMIT 2000 ?
ayakos
Roi des posts
Roi des posts
 
Messages: 662
Enregistré le: 26 Mar 2005 à 16:03

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar pierredu » 21 Sep 2018 à 14:29

Les apostrophes inverses ne sont plus nécessaires pour marquer les noms de tables et de colonnes. C'est un usage qui perdure...
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1175
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar ayakos » 21 Sep 2018 à 14:35

d'accord oui c'est ce qu'il me semblait mais je voulais être sûr
bon autrement, je suis toujours bloqué :mrgreen:
ayakos
Roi des posts
Roi des posts
 
Messages: 662
Enregistré le: 26 Mar 2005 à 16:03

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar Steph » 21 Sep 2018 à 14:46

Au fait tu es sûr que le lien hostingpics était en HTTP et pas HTTPS ?
Avatar de l’utilisateur
Steph
Administrateur
Administrateur
 
Messages: 18955
Enregistré le: 29 Déc 2008 à 16:48
Localisation: Alsace / Bas-Rhin / France

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar ayakos » 21 Sep 2018 à 15:27

oui. mais en fait ici peu importe. en fait c'était en HTTPS mais dans les derniers mois avant qu'ils ferment totalement leurs serveurs, plein de liens sont repassés en HTTP mais quoiqu'il en soit là je ne cherche même pas à faire refonctionner directement mon image car je serai rigoureux avec les cas http et https par la suite (j'ai plein de requêtes à lancer en fait)

là je cherche déjà à en faire fonctionner UNE pour commencer et comprendre le principe, et je suis sûr et certain d'une chose, c'est que l'image test (que j'ai posté dans mon forum de test) elle a une adresse en http, et pas en https

donc ma requête ci-dessus devrait fonctionner, logiquement, et renvoyer une entrée (et pas 0)
je ne comprend pas trop du coup
ayakos
Roi des posts
Roi des posts
 
Messages: 662
Enregistré le: 26 Mar 2005 à 16:03

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar Zoddo » 23 Sep 2018 à 13:00

pierredu a écrit:Les apostrophes inverses ne sont plus nécessaires pour marquer les noms de tables et de colonnes. C'est un usage qui perdure...

Et ce n'est pas compatible avec tous les SGBD. C'est permet surtout de sécuriser les requêtes, au cas où le nom d'une table ou d'une colonne contient un mot clé réservé, par exemple. C'est la raison pour laquelle phpMyAdmin&co. les mettent systématiquement.
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 7043
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar ayakos » 23 Sep 2018 à 19:43

merci pour l'explication sur ceci

mais du coup pour ma requête personne ne saurait répondre ?
On a fait des tests supplémentaires, et on s'est aperçu d'une chose :

quand on essaie de remplacer un mot simple par un autre mot simple (par exemple "tolkien", par "jackson")
ça marche avec la syntaxe de la requête que j'ai mise au début

par contre avec des URL ça ne marche pas, ça ne change rien du tout. j'en déduis à priori que ce sont les caractères comme : ou // qui doivent poser problème, mais du coup, comment les encapsuler, ou comment faire en sorte qu'ils passent sans problème ?

Merci d'avance
ayakos
Roi des posts
Roi des posts
 
Messages: 662
Enregistré le: 26 Mar 2005 à 16:03

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar pierredu » 23 Sep 2018 à 21:21

Je ne voulais pas soulever le lièvre, parce que je me fais avoir à tous les coups. Les barres obliques sont une véritable plaie pour les chaînes de recherche/remplacement.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1175
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: Soucis avec une requête SQL (remplacement chaine de caractère)

Messagepar ayakos » 25 Sep 2018 à 10:09

Personne ici ne sait comment faire ? je suis un peu étonné,
de notre côté on continue à chercher, j'ai demandé à un ami informaticien mais qui ne sait pas trop quoi faire

autrement, quelqu'un m'a dit ceci, et je crois qu'il y a quelque chose à creuser :
Une hypothèse : peut-être que dans la valeur de post_text l'url est encodée ? Du genre http%3A%2F%2Fimg15.hostingpics.net%2Fpics%2F8 ? Auquel cas il ne trouverait pas de correspondance.


Mais comment je peux savoir ça ? ET si c'est un problème de ce genre, que faut-il faire exactement ? comment on peut remplacer les caractères qui posent problème par leur code ?
ayakos
Roi des posts
Roi des posts
 
Messages: 662
Enregistré le: 26 Mar 2005 à 16:03

Suivante

Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron