Jump to content

Spidetra

Hubmaster
  • Content Count

    326
  • Joined

  • Last visited

Posts posted by Spidetra


  1. Un bon fichier fournisseur, c'est une partie du trésor de guerre d'une entreprise.

    Au moins autant que le fichier client.

    Sauf âme très généreuse sur le hub, ça va être à toi de prendre ton baton de pélerin et de te constituer ce fichier. Annuaires Pro, Salon Pro, Syndicat Pro, etc....

    J'anticipe une future question : non je ne connait pas de bon fournisseurs dans le textile.

    Dans le higth-tech oui, mais pas dans le textile.


  2. Et généralement, quand on a déposé plainte, est-ce que ça abouti à quelque chose ou est-ce que de toute manière le marchand l'a dans l'os ?

    Nous étions plutôt un grand site. Et nous avions la chance d'être bien suivi par la gendarmerie. Avec un gendarme qui passait souvent nous voir.

    Pour l'IP, avec chacune de nos commandes l'IP était enregistré. C'est nous qui la fournissions à la gendarmerie.

    Abouti ou pas ? Aucune idée. Je m'occupait que d'informatique.

    En tout cas l'ensemble des contentieux, fraudes, colis perdu et tuti quanti mobilisait au moins une personne à temps plein.


  3. merci d'avoir pris le temps de me répondre ( et surtout de me lire )

    Le niveau de contraintes pour les options est de niveau 1.

    Il est relativement facile de gérer de manière classique par des tables annexes.

    Le choix est imposé par une nouvelle contrainte :

    La liste des disponibilités doit être mise à jour en temps réels en fonction des choix de l'utilisateur.

    Ajax et mode Web 2.0 obligent ;)

    Je ne peux plus me permettre d'aller faire une requête en me liant avec les différentes tables pour aller choisir les bonnes options.

    D'où mon intérêt pour les techniques de bit bashing.

    Le SELECT va devenir mono-table, avec une seule condition sur un champ en BIGINT qui sera indexé.

    J'ai besoin d'une requête très performante et j'espère qu'un tel choix me permettra de gagner en perf.


  4. Salut le Hub,

    Désolé pour la longueur du post.

    J'ai besoin de gérer des options multiples pour une gamme de produits.

    Pour simplifier et optimiser les requêtes, j'ai décidé d'utiliser des techniques de bit bashing

    http://www.webmaster-hub.com/publication/article75.html

    Je dois gérer ces options :

    - dans le stockage de mes données en SQL

    - Dans les traitements en PHP

    - En javascript : gestion des cases à cocher.

    J'ai une connaissance théorique de ces techniques. Mais j'avoue ne pas être très à l'aise avec les opérateurs binaires.

    Le Problème :

    Je doit gérer de [1..n] options contenant chacune de [2..m] possibilités.

    Je ne connais pas les valeurs max de n et de m.

    Les possibilités pour une option donnés sont mutuellement exclusive.

    Même si en début de projet je vais essayer d'être le plus exhaustif possible sur les différentes options, je veux pouvoir ajouter de nouvelles options ou de nouveaux choix sans problème.

    Je ne veux pas gérer ces options avec des requêtes SQL complexe, et une ribambelle de AND ou de OR. D'où le choix du bit bashing.

    Exemple avec 3 options :

    Option 1 :

    => Choix A, B, C, D, E, F

    Option 2 :

    => choix A, B

    Option 3 :

    => A, B, C, D

    Je pourrais avoir les produits :

    Produit 1 : 1A & 2A & 3A

    Produit 2 : 1D & 2A & 3C

    Produit 3 : 1A & 2A & 3D

    etc....

    Mon problème va se situer :

    1. Au niveau du stockage dans la base SQL

    2. Au niveau de la sélection.

    La Solution :

    Format du champ de stockage :BIGINT unsigned ( 64-bits ).

    Cela va me laisser 64 possiblités d'option ce qui devrait être suffisant ( j'espère ! ).

    Première approximation, sans forcer, une trentaine d'options

    Concrètement :

    1. Comment je stocke mes valeurs d'option dans la base ? Est-ce que je suis obligé de les saisir en base 10 ou est-ce qu'il est possible de les saisir dans une autre base ( base Hexa ) ?

    En base 10, si je dépasse les 30 options, la saisie est sujette a erreur.

    2. Pour stocker la valeur d'un produit :

    C'est le plus simple. Je pense qu'en faisant un & binaire entre les options c'est bon.

    3. La sélection des produits

    La sélection des produits va dépendre de cases à cocher gérer par l'utilisateur final.

    J'ai envie ( en javascript ) de stocker la résultante des choix de l'utilisateur dans une seule variable.

    Mon problème c'est que je doit stocker des & et des | dans cette variable :

    Ex : Si l'utilisateur a coché toutes les cases possibles. Sauf erreur de ma part :

    ( 1A | 1B | 1C....etc ) & ( 2A | 2B ) & ( 3A | 3B | 3C | 3D )

    Le plus simple serait d'avoir une seule variable que je pourrais modifier sur chaque action de check, uncheck. Est-ce que c'est possible en utilisant les opérateurs sur les bits ?

    Est-ce qu'il serait préférable de gérer une variable par option ?

    Ouf !....

    Merci à tout ceux qui auront eu le courage de lire jusqu'ici :)


  5. Sauf s'il est clairement spécifié que le fichier peut être revendu à des tiers (et que cette option soit activable par opt-in, justement ;)).

    Oui, je sais. J'ai une lecture très restrictive de Opt-in et Opt-out.

    Une adresse mail devient véritablement opt-out lorsque tu as cliqué sur le lien : je veux me désinscrire.

    Ce lien étant obligatoire dans toutes les campagnes d'e-mailing/


  6. Même si le message de Cyberlaura est très drôle :). Il y a tout de même des chances pour que son client est acheté des mails optin, je pense qu'aujourd'hui tout le monde est informé des lois vis à vis du spam. Donc si il s'agit réellement de mails optin, oui le mieux est de s'adresser à un prestataire (Surtout si le fichier est de qualité ). Le mail reste tout de même le support publicitaire le plus efficace sur internet ;).

    Un million de mails opt-in ? Ty y croit vraiment

    Opt-In et achat de fichier sont pour moi anti-nomique.

    Tu as un fichier mail opt-in, tu le vend, le fichier devient automatiquement opt-out.


  7. peut etre le count qui n'était pas en majuscule :unsure:

    le tout c'est que ca tourne :P

    Merci encore :)

    Nos posts ce sont croisés, j'édite le mien....

    Pour éviter ce genre de pb :

    1. Il te faut un bon éditeur bien configurer.

    2. Ton Level Error doit être configurer sur NOTICE en phase de dev.

    Je viens de comprendre d'où vient ta coquille.

    Tu as fait juste un copier / coller de la requête SQL que j'ai posté plus haut :)


  8. Ba écouter j'ai beau tourner ça comme la logique me le suggère ca marche pas :( :

    $req89 = mysql_query("SELECT  count(*) as nb_entrees, SUM(montant) AS total FROM matable WHERE YEAR(o_timestamp) = 2006 and statut = '0' GROUP BY MONTH(o_timestamp)");

    while($data2 = mysql_fetch_object($req89)) {
    $lolo = sprintf("%01.1f0",($data2->total/1.196));
    $coms = $data2->nbre_entrees;
    print '<td bgcolor="#BBF9B9"><b>'.$lolo.'<br>'.$coms.'<br></b></td>';
    }

    $coms n'affiche rien :unsure:

    Dans ta requête :

    count(*) as nb_entrees

    dans ton code Php :

    $data2->nbre_entrees


  9. j'avais deja fait l'essai en laissant mes boucle while appelant ainsi la même requete mais sur la ligne de mes deux while voilà ce qu'il affiche:

    Séparons les pb SQL et Php.

    1. Est-ce que la requête que je te suggère répond à ton problème ? Si tu la teste dans phpMyAdmin ou Mysql Query Brower, qu'est-ce qu'elle te retourne ?

    Est-ce que le résultat correspond à ce que tu attends ?

    Si tu répond oui à toutes ces questions ton pb SQL est résolu.

    2. En Php, si tu as une seule requête tu n'as plus besoin d'avoir deux boucles. Tu simplifie ton code et ça devrait rouler.


  10. Vu que je n'y connais pas grand chose dans ce domaine, je m'adresse à vous.

    Est-ce que mes ambitions sont réalisables ?

    Si oui, pourriez-vous me donné quelques pistes de comment c'est réalisable ? (j'ai quelques idées là dessus, notamment avec la technologie RAID mais je ne trouve rien d'équivalent dans les offres OVH)

    En gros, quelle config chez OVH choisiriez-vous ?

    Vraiment désole. ça c'est un coup dur :(

    Nous avons eu le même problème en interne l'an dernier.

    24H00 de transactions perdu et ceux malgré la mise en place d'un système RAID trois mois plus tôt.

    Mauvaise config du RAID, mauvaise manip du technicien qui est intervenus. Mystère !

    Pour ton pb j'envisagerai les inconvénients et avantages de deux solutions :

    1. Réplication mySQL :

    => Est-il possible de mettre en place un système de réplication entre OVH et ton back-office ?

    => Quelles contraintes en terme de charge serveur ?

    2. Solution Cluster de chez OVH :

    J'avais vu une solution cluster chez OVH.

    Ce qui pourrait être intéressant dans ton cas c'est le filler qui est mis derrière les serveurs web.

    http://www.ovh.com/fr/produits/cluster.xml

    J'ai des doutes sur cette solution pour ceux qui cherchent des vrais clusters.

    Dans ton cas c'est différents :

    Ce que tu cherche c'est une sécurisation des données.

    Il va falloir compter un budget entre 250 - 300 HT / mois.

    La disponibilité, ça a un prix...

    J'espère pour toi que tout va s'arranger rapidement

    Bonjour,

    Pour éviter une partie des problemes de disque, utiliser un serveur avec deux disques en raid 1 semble être deja une premiere securité. Tu as deux disques qui fonctionnent en même temps, si un lache il y a toujours le deuxieme (enfin si le deuxieme ne lache pas avec, on ne sait jamais il faut mieu toujours prévoir le pire).

    Par exemple : http://www.ovh.com/fr/produits/pentiumdualplus.xml

    Et je te rassure, le pire arrive parfois... et c'est douloureux !


  11. Bonsoir le hub,

    Je n'arrive pas à rendre mon serveur mysql de test insensible à la casse ( MySQL 5.0.18-nt ).

    Deux variables systèmes servent à configurer la sensibilité à la casse :

    A priori pour le nom des tables ça à l'air correct :

    lower_case_table_names=1

    l'autre variable lower_case_file_system est à OFF.

    Je n'arrive pas à la positionner à ON.

    SET lower_case_file_system=ON

    donne le message d'erreur suivant => "Unknown system variable 'lower_case_file_system'"

    La configuration de cette variable dans le my.ini => le serveur ne démarre plus.

    Une idée ?

    Merci par avance.


  12. ça me surprend !

    Nous avons eu des pbde fraude à la CB et nous portions régulièrement plainte à la gendarmerie dont nous dépendions.

    Il faut aller voir avec la gendarmerie ou le commissariat dont tu dépend. Aux dernières nouvelles ce sont eux qui enregistrent les plaintes.

    La gendramerie qui s'occupait de notre dossier était vraiment nickel. Nous avions un seul interlocuteur qui suivait tout nos dossiers. On le voyait régulièrement, il venait récupérer les ip, etc, etc...

    On a eu la chance de tomber sur une gendarmerie vraiment bien.

    Si en face ton interlocuteur il pipe rien à internet, ça va pas être facile


  13. oui oui certes masi pas moyen de trouver quelqu'un qui mle dise CHEZ qui le forwarder

    si je le laisse "dans la nature" et que qq'un d'autre le prend j'ai peur qu'on estime que ce soit ma faute

    ???

    Pour ça il faut te mettre en relation avec l'avocat qui t'a contacté, et voir avec lui.

    et sinon dans l'absolu personne n'arrive pas a me dire si je sui VRAIMENT ds 'lllégalité ou pas

    qu'en est-il ?

    pas moi, désolé.


  14. alors que le nom en question redirige vers son site officiel, que je n'ai jamais utilisé ce nom de domaine pour faire de la redirection ... bref je flippe un peu

    quelqu'un sait si je risque VRAIMENT qualque chose ?

    donc tu n'utilises pas le nomp de domaine puisque tu rederige.

    Céde... et file lui son nom.

    Imaginons que tu ne risques absolument rien, tu serais prêt à prendre le risque d'un procés long et coûteux.


  15. Passe en mode debug bourrin : met des var_dump() partout pour voir

    <?php
    mysql_select_db($database_conn_coll_gest, $conn_coll_gest);
    $query_Recordset = "SELECT * FROM coll_printer_commande WHERE print_date BETWEEN '$recherchedebut' AND '$recherchefin'";
    var_dump($query_Recordset);
    $Recordset = mysql_query($query_Recordset, $conn_coll_gest) or die(mysql_error());
    var_dump($Recordset);
    $row_Recordset = mysql_fetch_assoc($Recordset);
    var_dump($row_Recordset);
    $totalRows_Recordset = mysql_num_rows($Recordset);
    var_dump($totalRows_Recordset);
    ?>


  16. Ces mecs sont absolument géniaux et jamais à cours d'idée.

    Je suis en admiration devant tant d'intelligence, d'innovation, et d'imagination.

    Imaginez :

    - à chaque fin de moi sur la facture de votre FAI :

    TEM ( Taxe sur Les Emails Envoyés ) : 0,23 €

    TVA ( 19,6 ° ) :

    Evidemment, s'ils sont intelligents, ils feront comme la TIPP, et on payera la TVA sur la taxe.

    Il faudrat qu'un jour la recherche fondamentale se penche sur la co...... humaine.

    Le jour où un chercheur arrivera à transformer la co...... humaine en énergie tout nos problèmes de pétrole et de nucléaire sont résolu.

    <edit>On évite le montrage du doigt et la polémique ! Merci</edit>


  17. Si je devais faire un truc de ce style :

    1. Je chercherai à savoir s'il existe des parser SQL : Parser SQL. Le premier résultat est un parser en Perl.

    Je ne sais pas s'il y en a en Php

    2. Une fois que ta requête est parsée et que tu as tes champs et tes table.

    Tu veux savoir à quelle table appartient tel champ.

    Je ne sais pas s'il existe un langage générique de requêtage d'un serveur SGBD.

    Généralement, tu connais la structure des tables systèmes de ton SGBD, et tu fait des requêtes spécifiques sur ces tables.

    Tu retombe dans des syntaxes qui seront dépendantes de ton SGBD.

    Les tables systèmes de mySQL sont différentes de postGresql qui sont différentes de MSSQL qui sont différentes d'Oracle ....

    C'est ce genre de parser que tu cherche. Mais celui-là est en java :

    http://www.experlog.com/gibello/zql/

    En Php tu as ça, mais il a pas l'air très actif :

    http://sourceforge.net/projects/osqlp/


  18. Tu aurais un SELECT du style :

    SELECT field1, field2, field3
    FROM foo f LEFT OUTER JOIN bar b on f.id = b.id_foo
    WHERE f.id > 45
    ORDER BY field1 desc

    tu voudrais que ton script te retourne :

    - field1, field2, field 3 : pour les champs

    - foo, bar : pour les tables

    C'est ça ?

×
×
  • Create New...