Blog de Portekoi : Programmation et Astuces

Programmation Cobol, Php, Asp, Java et DotNet…

[SQL Server] Rechercher une chaine de mots dans une table

Aujourd’hui, j’ai été confronté à cette demande :

D’un côté, j’ai une table avec deux colonnes : N° de Client | Nom – Prénom
Les données sont enregistrées de cette manière :

0123456789 | Damien David Thomas
1234512144 | Igor Bastien Guillaume
9874125621 | Marc Patrick

De l’autre, une table avec une seule colonne : Nom – Prénom
Les données sont sous cette forme :

Damien
Patrick
Marc

Sous SQL Server, la fonction CHARINDEX() permet de faire un équivalent de « Strpos » pour PHP ou « InStr » pour ASP. Mais le problème est qu’elle s’arrête à la première occurrence trouvée.

Par exemple, si je fais un :

DECLARE _at_temp as varchar(50);
SET _at_temp = « Damien David Thomas »;
Print SUB_STRING(_at_temp, 0, CHARINDEX( » « ,rtrim(_at_temp) +  » « )+1) //Enlever le ‘_’ de sub_string. Je sais pas pourquoi mais WP […]

Devis pour un site web : attention aux pièges

Au fil de ma carrière, combien de fois j’ai reçu ce genre d’appel : « Dis moi, j’ai un pote d’un ami qui a un devis pour site à 390€/mois + 2500€ pour deux pages dont une de contact »

Tout d’abord, voici ce que je dirais à propos d’un devis. Je parle ici d’un devis pour petit site.

Pas d’abonnement

Un abonnement n’est pas justifié. Que cela soit pour de la maintenance technique ou une mise à jour, pour un petit site, cela n’est pas nécessaire. Une facturation à l’acte pour, par exemple, mettre à jour WordPress sera bien plus indiquée.

Un hébergement et un nom de domaine à votre nom

Ce point est très important : prenez toujours votre hébergement ainsi que votre nom de […]

Résultat d’une requête groupée par quinzaine…

Voici comment afficher un résultat de requête sous la forme suivante :

Jan 2013 Day 16-31 Donnée_1 Donnée_2
Jan 2013 Day 01-15 Donnée_1 Donnée_2
Dec 2012 Day 16-31 Donnée_1 Donnée_2
Dec 2012 Day 01-15 Donnée_1 Donnée_2

Ici, les données sont regroupées par quinze jours.

Voici la requêtes :

select
CONCAT( DATE_FORMAT(`date_add`, ‘%b %Y Day ‘ ),
case when dayofmonth( `date_add` ) < 16 then '01-15' else CONCAT( '16-', right( last_day( `date_add` ), 2) ) [...]

Accélérer WordPress sur les gros sites

Dernièrement, j’ai du travailler sur un site fonctionnant sous un WordPress ayant dépassé les 900 billets et dont certaines tables dépassaient le Giga de données.

Avant tout, vous devez faire une sauvegarde de votre base de données.

Tout d’abord, sachez que WordPress enregistre toutes les « versions » de vos articles. Si vous en éditez un, la version précédente sera toujours en base.

Pour les visionner :

SELECT count(*)
FROM `wp_posts`
WHERE post_type = ‘revision’

Pour les Supprimer (sauf ceux de 2013 ici) :

DELETE
FROM `wp_posts`
WHERE post_type = ‘revision’
AND post_date NOT LIKE ‘2013-%’

Sur la table wp_commentmeta, cette dernière contient des informations relatives aux posts… même quand ces derniers ont été supprimés :

Consultation :

SELECT *
FROM wp_commentmeta
WHERE comment_id NOT IN (
SELECT comment_id […]

MYSQL : Décomposition en Jour(s) Heure(s) et Minute(s)

Une fonction toute simple pour obtenir une différence entre deux dates en jour(s), heure(s) et minute(s) :

SELECT CONCAT(DAYOFYEAR(NOW())-DAYOFYEAR(‘2012-12-01′),’ jour(s) ‘,
DATE_FORMAT(ADDTIME(« 2000-00-00 00:00:00 »,
SEC_TO_TIME(TIME_TO_SEC(NOW())-TIME_TO_SEC(‘2012-12-01’))),
‘%k heure(s) et %i minutes’)) AS time

Affichera :

5 jour(s) 23 heure(s) et 05 minute(s) (now = 06/12/2012)

Envoyer un mail en Cobol (sans composant tiers)

Aujourd’hui, une problématique est apparue dans la banque où je travaille : pouvoir envoyer un simple mail dans des transactions de gestion des tiers.

Autrement dit : Pouvoir envoyer un email sans sortir des écrans Cobol (As400 – Db2)

Comment procéder?

Tout d’abord, un petit schéma qui va nous guider pour la suite :

Pour cela, vous aurez besoin de différentes librairies :

Pour l’envoi de mail (Le package ici)
Pour la connexion à l’AS400 (Documentation ici)

Une petite explication s’impose :

Tout d’abord, pourquoi utiliser un Cobol alors que la commande RUNJVA permet d’appeler une classe Java en lui passant X paramètres?
Tout simplement parce que la longueur des paramètres sont limités. Par exemple, si vous devez envoyer un email de 1500 caractères, vous ne pourrez tout simplement […]

LeBonCoin.Fr et les arnaques…

Aujourd’hui, je décide de mettre mon canapé en vente pour 150€ sur LeBonCoin.Fr

Un screenshot ici :

Premier contact par SMS :

Je n’y vois d’étrange mis à part le numéro mais je passe outre. J’envoi donc un mail avec des photos et voici le mail que je reçois en retour :

Bonjour

OK,pas de souci pour les photos.
Merci de m’avoir répondu.
Alors moi je suis d’accord pour vous l’acheter .
Pour cela,vu que je suis présentement en déplacement pour 1 mois (hors France),
je compte vous avancer les fonds dans un premier temps par mandat cash
via la poste et une fois que vous auriez les sous dès cet instant nous
fixerons une date afin de convenir d’un rdv à votre domicile pour la
récupération. Donc si vous êtes d’accord […]

Superfish et Php

Vous désirez installer SuperFish sur votre site Php avec des menus provenant de votre base de données?

Rien de plus simple.

Un exemple ici :
http://www.portekoi.com/menu/index.php

Sur cette page, vous pourrez ajouter un menu très simplement là où vous le désirez.

Du côté de Php, il suffit :

1/ De créer la table qui contiendra notre menu :

CREATE TABLE `tab_menu` (
`m_id` bigint(20) NOT NULL auto_increment,
`m_title` varchar(40) NOT NULL,
`m_id_parent` bigint(20) NOT NULL,
`m_affiche` int(11) NOT NULL,
`m_profondeur` int(11) NOT NULL,
PRIMARY KEY (`m_id`)
) ENGINE=MyISAM AUTO_INCREMENT=29 DEFAULT CHARSET=latin1 AUTO_INCREMENT=29 ;

Une explication :

m_id : ID unique du menu
m_title : Titre (libellé) du menu
m_id_parent : ID du parent. 1 Si Titre principal / 0 pour le niveau invisible « Root »
m_affiche : […]

Générer une chaine aléatoire en COBOL (CBLSQLLE)

La fonction aléatoire sur Cobol existe mais renvoie toujours le même résultat dans le même ordre et est très difficile accessible.

Dans le code ci-dessous, nous « biaisons » en utilisant la fonction rand() de SQL.

Cobol peut accéder aux requête SQL. Pour notre exemple, à vous de créer le fichier en reprenant la partie qui vous intéresse.

IDENTIFICATION DIVISION.
PROGRAM-ID. RDMPGM.
AUTHOR. PORTEKOI.
DATE-WRITTEN. […]

, , , , , , ,

Next posts