Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2373 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  181  182  183  ..  486  487  488  489  490  491
Auteur Sujet :

les développeurs de forums, les 3/4 des forums sont down /o\

n°843923
nfshp2
Posté le 07-09-2004 à 09:33:38  profilanswer
 

Reprise du message précédent :

Gilbert Gosseyn a écrit :

Pere Arhistide (je t'ai recconu), essaye de mouiller ta chemise : tu apprendra et en plus tu pourra à terme faire ce que tu veux sans venir pleurer pour le moindre truc et/ou te contenter de scripts non satisfaisants ...
 


ca m'est adressé?  :??:

mood
Publicité
Posté le 07-09-2004 à 09:33:38  profilanswer
 

n°843994
Gilbert Go​sseyn
Dr Liara T'Soni
Posté le 07-09-2004 à 11:03:50  profilanswer
 

Oui : cf ce topic (si je ne me trompe pas sur la personne).


---------------
Tant que la couleur de la peau sera plus importante que celle des yeux, nous ne connaitrons pas la paix. ● L'écriture, c'est la mémoire du futur. ● Mods FO4
n°843995
Profil sup​primé
Posté le 07-09-2004 à 11:04:46  answer
 

chacal_one333 a écrit :

j'ai tester kodos (testeur de regexp)
 
et j'ai un match :cry:
 

Code :
  1. \[color=#[a-fA-F0-9]{3,6}\](.+?)\[\/color\]
  2. [color=#26deff]test[/color]
  3. > match



[:opus dei]

n°843996
chaced
Posté le 07-09-2004 à 11:05:35  profilanswer
 

Au fait, comment fonctionne le principe du cache pour les forums ?


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°843999
nfshp2
Posté le 07-09-2004 à 11:08:46  profilanswer
 

Gilbert Gosseyn a écrit :

Oui : cf ce topic (si je ne me trompe pas sur la personne).


desolé de te decevoir mais tu t trompé sur la personne :non:
 
 
mais pouvez vous m'aider a propos de ma question  :sweat:  (cf plus haut)


Message édité par nfshp2 le 07-09-2004 à 11:13:56
n°844006
chaced
Posté le 07-09-2004 à 11:21:03  profilanswer
 

nfshp2 a écrit :

desolé de te decevoir mais tu t trompé sur la personne :non:
 
 
mais pouvez vous m'aider a propos de ma question  :sweat:  (cf plus haut)


 
Un truc que j'ai fait il y a longtemp (ce n'est pas pour un forum), c'est juste pour avoir un exemple
 

Code :
  1. // Moteur de recherche
  2. function find_db($table,$col,$operateur,$recherche,$sup)
  3. {
  4. // on passe les mots recherchés en minuscules
  5. $recherche = strtolower($recherche);
  6. // on remplace les ' + , :  par des espaces
  7. $mots = str_replace('+', ' ', trim($recherche));
  8. $mots = str_replace('\'', ' ', $mots);
  9. $mots = str_replace(',', ' ', $mots);
  10. $mots = str_replace(':', ' ', $mots);
  11. // on place les differents mots dans un tableau
  12. $tab = explode(' ' , $mots);
  13. // on compte le nbr d'élément du tableau.
  14. $nb = count($tab);
  15. //on prépare la requête SQL.
  16. $sql = "select * from $table where (( $col like lower('%$tab[0]%') ";
  17. // on boucle pour integrer tous les mots dans la requête
  18. for($i = 1; $i < $nb; $i++) {
  19. $sql .= "$operateur $col like lower('%$tab[$i]%') ";
  20. }
  21. if($sup!="" )
  22. {
  23.  $sql.=" ) and $sup)";
  24. }
  25. else
  26. {
  27.  $sql.=" ))";
  28. }
  29. if($recherche!="" )
  30. {
  31.  return $sql;
  32. }
  33. else
  34. {
  35.  return "select * from $table where $col='' ";
  36. }
  37. }


Message édité par chaced le 07-09-2004 à 12:02:22

---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°844039
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 11:56:19  profilanswer
 

Salut.
 
C'est moi qui ai indiqué à nfshp2 de venir ici pour obtenir de l'aide.
 
Vous n'utilisez pas les fonctions de recherche indexée de MySQL pour vos forums ?
Car je sais que ces fonctionx existent, et c'est légèrement mieu foutu que des like sur tous les mots... Non seulement c'est bien plus rapide, mais surtout les réponses sont plus pertinentes et vu qu'on peut récupérer un index de pertinence, bah voilà quoi...
 
Vous connaissez pas un site traîtant de MySQL parlant de ces fonctions de recherche ? Ca pourrait l'aider, et ça m'éviterai d'être le seul à l'aider alors que je ne connais rien à MySQL [:vomi]

n°844054
chaced
Posté le 07-09-2004 à 12:03:00  profilanswer
 

Arjuna a écrit :

Salut.
 
C'est moi qui ai indiqué à nfshp2 de venir ici pour obtenir de l'aide.
 
Vous n'utilisez pas les fonctions de recherche indexée de MySQL pour vos forums ?
Car je sais que ces fonctionx existent, et c'est légèrement mieu foutu que des like sur tous les mots... Non seulement c'est bien plus rapide, mais surtout les réponses sont plus pertinentes et vu qu'on peut récupérer un index de pertinence, bah voilà quoi...
 
Vous connaissez pas un site traîtant de MySQL parlant de ces fonctions de recherche ? Ca pourrait l'aider, et ça m'éviterai d'être le seul à l'aider alors que je ne connais rien à MySQL [:vomi]


 
On peut meme faire des soundex en mysql :D


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°844079
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 12:15:32  profilanswer
 

Je sais, je lui ai déjà dit. Mais c'est aussi pourri que le LIKE pour faire un moteur de recherche (même plus)
 
http://forum.hardware.fr/hardwaref [...] 7304-1.htm

n°844081
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 12:19:14  profilanswer
 

chaced a écrit :


Code :
  1. // Moteur de recherche
  2. // [...]




Juste comme ça, en lisant rapidement, il y a un gros bug majeur dans ta fonction :

  • Tu fais un strtolower() de $recherche avant de couper en mots. Ton "lower()" autour de "$tab[x]" est donc inutile.
  • Par contre, tu ne fais pas de lower() sur la colonne "$col", du coup si elle contient des mots en majuscule, ta fonction ne les retrouve pas ;)

mood
Publicité
Posté le 07-09-2004 à 12:19:14  profilanswer
 

n°844101
chaced
Posté le 07-09-2004 à 12:46:59  profilanswer
 

Arjuna a écrit :

Juste comme ça, en lisant rapidement, il y a un gros bug majeur dans ta fonction :

  • Tu fais un strtolower() de $recherche avant de couper en mots. Ton "lower()" autour de "$tab[x]" est donc inutile.
  • Par contre, tu ne fais pas de lower() sur la colonne "$col", du coup si elle contient des mots en majuscule, ta fonction ne les retrouve pas ;)



 
De mémoire, ce code est assez vieux :D
 
$col c'est le champ sur lequel la recherche est efféctuée dans la table donc pas besoin de lower la dessus.
 
Par contre, le le lower sur $recherche passe en minuscule, et le lower dans la requette sql passe en minusculle le contenue de la table
 
Du moins il me semble :lol:
 
 
Preuve, va la : http://www.chaced.com/annu.php et cherche abiword :D


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°844106
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 12:51:29  profilanswer
 

chaced a écrit :

De mémoire, ce code est assez vieux :D
 
$col c'est le champ sur lequel la recherche est efféctuée dans la table donc pas besoin de lower la dessus.
 
Par contre, le le lower sur $recherche passe en minuscule, et le lower dans la requette sql passe en minusculle le contenue de la table
 
Du moins il me semble :lol:
 
 
Preuve, va la : http://www.chaced.com/annu.php et cherche abiword :D


Non non, il faut faire un LOWER (SQL, pas strtolower de PHP hein ;)) sur le nom de la table pour passer le contenu de la table en minuscule.
Faire un LOWER sur ton like ne fait que remettre en minuscule la liste des mots qui sont déjà en minuscule ;)
 
PS: Par contre, ça marche quand même avec MySQL, parceque ce dernier n'est pas case-sensitive, du moins pour le LIKE. ;)

n°844110
chaced
Posté le 07-09-2004 à 12:53:40  profilanswer
 

Arjuna a écrit :

Non non, il faut faire un LOWER (SQL, pas strtolower de PHP hein ;)) sur le nom de la table pour passer le contenu de la table en minuscule.
Faire un LOWER sur ton like ne fait que remettre en minuscule la liste des mots qui sont déjà en minuscule ;)
 
PS: Par contre, ça marche quand même avec MySQL, parceque ce dernier n'est pas case-sensitive, du moins pour le LIKE. ;)


 
Ha ok, merci du renseignement :D
 
Au fait, en parlant de moteur de recherche, vous faites comment pour le forum ? car si il faut chercher dans le contenue des post, c'est horriblement long :(


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°844258
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 15:12:35  profilanswer
 

Arjuna a écrit :

Non non, il faut faire un LOWER (SQL, pas strtolower de PHP hein ;)) sur le nom de la table pour passer le contenu de la table en minuscule.


 
Euh... Il faut replacer le mot "table" par "champ". Tu auras corrigé de toi-même ;)
 
Bref, pour requête classique, et un SGBD POSIX :
 
select * maTable where upper(monChamp) like upper('%blabla%')

n°844261
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 15:14:03  profilanswer
 

chaced a écrit :

Ha ok, merci du renseignement :D
 
Au fait, en parlant de moteur de recherche, vous faites comment pour le forum ? car si il faut chercher dans le contenue des post, c'est horriblement long :(


Justement, je pensais que vous connaissiez/utilisiez les fonction de recherche sur texte indexé de MySQL. A priori, soit j'ai rêvé et ça n'existe pas (j'en suis pourtant convaincu) soit c'est un truc de la dernière version de MySQL, et n'est pas suffisament répendu chez les hébergeurs pour être utilisable...
En tout cas, je suis très surpris que vous ne connaissiez pas.

n°844264
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 15:16:05  profilanswer
 

Les fonctions en question sont censées être plus ou moins équivamentes à ces fonction de Microsoft SQL Server 2000 :
 

Citation :


 
 Accès aux données relationnelles et modification  
 
 
Utilisation des fonctions CONTAINSTABLE et FREETEXTTABLE pour l'évaluation de l'ensemble des lignes
Les fonctions CONTAINSTABLE et FREETEXTTABLE sont utilisées pour spécifier les requêtes de texte intégral qui renvoient les rangs de valeurs appropriés pour chaque ligne. Ces fonctions sont très similaires, mais utilisées différemment à partir des prédicats de texte intégral, CONTAINS et FREETEXT.
 
Différentiation entre les prédicats de texte intégral et les fonctions
Bien que les prédicats de texte intégral et les fonctions d'évaluation de l'ensemble de lignes de texte intégral soient utilisés pour les requêtes de texte intégral et que l'instruction Transact-SQL servant à spécifier la condition de recherche de texte intégral soit à la fois la même pour les prédicats et les fonctions, il existe cependant des différences majeures quant à leur utilisation :  
 
CONTAINS et FREETEXT renvoient tous deux les valeurs TRUE ou FALSE, par conséquent, ils sont habituellement spécifiés dans la clause WHERE d'une instruction SELECT.  
CONTAINSTABLE et FREETEXTTABLE renvoient tous deux une table de zéro ligne, une ligne ou davantage ; par conséquent, elles doivent toujours être spécifiées dans la clause FROM.
 
CONTAINS et FREETEXT peuvent uniquement être utilisés pour spécifier les critères de sélection que Microsoft® SQL Server™ utilise pour déterminer l'appartenance du jeu de résultats.  
CONTAINSTABLE et FREETEXTTABLE sont également utilisées pour spécifier des critères de sélection. La table renvoyée possède une colonne appelée KEY qui comporte les valeurs des clés de texte intégral. Chaque table inscrite de texte intégral possède une colonne dont les valeurs sont assurées d'être uniques. Les valeurs renvoyées dans la colonne KEY de CONTAINSTABLE ou de FREETEXTTABLE constituent les valeurs uniques, de la table inscrite en texte intégral, des lignes qui correspondent aux critères de sélection spécifiés dans la condition de recherche de texte intégral.
 
De plus, la table produite par CONTAINSTABLE et FREETEXTTABLE possède une colonne nommée RANK, qui comporte des valeurs comprises entre 0 et 1000. Ces valeurs servent à attribuer des rangs aux lignes renvoyées, selon le degré de leur correspondance avec les critères de sélection.
 
Les requêtes utilisant les fonctions CONTAINSTABLE et FREETEXTTABLE sont plus complexes que celles qui font appel aux prédicats CONTAINS et FREETEXT, car les lignes sélectionnées renvoyées par ces fonctions, doivent être explicitement jointes avec les lignes figurant dans la table SQL Server d'origine.
 
L'exemple suivant renvoie la description et le nom de catégorie de toutes les catégories de produits alimentaires dont la colonne Description contient les mots « sweet and savory » à proximité du mot « sauces » ou « candies ». Toutes les lignes avec le nom de catégorie « Seafood » sont ignorées. Seules les lignes dont la valeur de classement est supérieure ou égale à 2 sont renvoyées.  
 
USE Northwind
GO
SELECT FT_TBL.Description,  
   FT_TBL.CategoryName,  
   KEY_TBL.RANK
FROM Categories AS FT_TBL INNER JOIN
   CONTAINSTABLE (Categories, Description,  
      '("sweet and savory" NEAR sauces) OR
      ("sweet and savory" NEAR candies)'
   ) AS KEY_TBL
   ON FT_TBL.CategoryID = KEY_TBL.[KEY]
WHERE KEY_TBL.RANK > 2
   AND FT_TBL.CategoryName <> 'Seafood'
ORDER BY KEY_TBL.RANK DESC
 
L'exemple suivant renvoie la description et le nom de catégorie des 10 premières catégories de produits alimentaires dont la colonne Description contient les mots « sweet and savory » à proximité du mot « sauces » ou « candies ».  
 
SELECT FT_TBL.Description,  
   FT_TBL.CategoryName,  
   KEY_TBL.RANK
FROM Categories AS FT_TBL INNER JOIN
   CONTAINSTABLE (Categories, Description,  
      '("sweet and savory" NEAR sauces) OR
      ("sweet and savory" NEAR candies)'
      , 10
   ) AS KEY_TBL
   ON FT_TBL.CategoryID = KEY_TBL.[KEY]
 
Comparaison entre CONTAINSTABLE et CONTAINS
La fonction CONTAINSTABLE et le prédicat CONTAINS utilisent des conditions de recherche similaires.  
 
Cependant, dans CONTAINSTABLE, vous spécifiez la table qui fera l'objet de la recherche de texte intégral, la colonne (ou l'ensemble des colonnes) dans la table où effectuer la recherche, la colonne à rechercher et la condition de recherche. Un quatrième paramètre, facultatif, permet à l'utilisateur d'indiquer que seul le plus haut nombre spécifié de correspondances soit renvoyé. Pour plus d'informations, voir la rubrique « Limitation de jeux de résultats ».
 
CONTAINSTABLE renvoie une table qui comporte une colonne intitulée RANK. Cette colonne RANK contient une valeur pour chaque ligne, indiquant son degré de correspondance avec les critères de sélection.
 
Cette requête spécifie l'utilisation de CONTAINSTABLE pour renvoyer une valeur de rang pour chaque ligne.
 
USE Northwind
GO
SELECT K.RANK, CompanyName, ContactName, Address
FROM Customers AS C
     INNER JOIN
     CONTAINSTABLE(Customers,Address, 'ISABOUT ("des*",    
                                                Rue WEIGHT(0.5),  
                                                Bouchers WEIGHT(0.9)
                                               )
                                      '  
                  ) AS K
     ON C.CustomerID = K.[KEY]
 
Here is the result set:
 
RANK CompanyName          ContactName       address            
---- ------------         -----------       -------            
123  Bon app'             Laurence Lebihan  12, rue des Bouchers  
65   Du monde entier      Janine Labrune    67, rue des Cinquante Otages  
15   France restauration  Carine Schmitt    54, rue Royale      
15   La maison d'Asie     Annette Roulet    1 rue Alsace-Lorraine  
15   Maison Dewey         Catherine Dewey   Rue Joseph-Bens 532  
15   Mère Paillarde       Jean Fresnière    43 rue St. Laurent  
15   Spécialités du monde Dominique Perrier 25, rue Lauriston      
15   Vins et alcools      Paul Henriot      59 rue de l'Abbaye
     Chevalier                                              
15   Victuailles en stock Mary Saveley      2, rue du Commerce
 
Comparaison entre FREETEXTTABLE et FREETEXT
La requête suivante étend une requête FREETEXTTABLE pour renvoyer les lignes des rangs les plus élevés en premier et ajouter ensuite le rang de chaque ligne à la liste de sélection. Pour spécifier une requête, il faut savoir que CategoryID constitue la colonne clé unique de la table Categories.
 
USE Northwind
GO
SELECT KEY_TBL.RANK, FT_TBL.Description
FROM Categories AS FT_TBL  
     INNER JOIN
     FREETEXTTABLE(Categories, Description,
                    'How can I make my own beers and ales?') AS KEY_TBL
     ON FT_TBL.CategoryID = KEY_TBL.[KEY]
ORDER BY KEY_TBL.RANK DESC
GO
 
The only difference in the syntax of FREETEXTTABLE and FREETEXT is the insertion of the table name as the first parameter.
 
Here is an extension of the same query that only returns rows with a rank value of 10 or greater:
 
USE Northwind
GO
SELECT KEY_TBL.RANK, FT_TBL.Description
FROM Categories FT_TBL  
     INNER JOIN
     FREETEXTTABLE (Categories, Description,
                    'How can I make my own beers and ales?') AS KEY_TBL
     ON FT_TBL.CategoryID = KEY_TBL.[KEY]
WHERE KEY_TBL.RANK >= 10
ORDER BY KEY_TBL.RANK DESC
GO
 
Identification du nom de colonne clé unique
Les requêtes qui utilisent les fonctions d'évaluation de l'ensemble de lignes s'avèrent complexes car il est nécessaire de connaître le nom de la colonne clé unique. Chaque table activée en mode texte intégral possède une propriété TableFulltextKeyColumn qui contient le numéro de l'ID de colonne de la colonne sélectionnée pour appliquer les lignes uniques de la table. L'exemple suivant montre comment le nom de la colonne clé peut être obtenu et utilisé de façon programmée.
 
USE Northwind
GO
DECLARE @key_column sysname
SET @key_column = Col_Name(Object_Id('Categories'),
                           ObjectProperty(Object_id('Categories'),
                                          'TableFulltextKeyColumn')  
                          )
print @key_column
EXECUTE ('SELECT Description, KEY_TBL.RANK
          FROM Categories FT_TBL  
               INNER JOIN
               FreetextTable (Categories, Description,
                    ''How can I make my own beers and ales?'') AS KEY_TBL          
               ON FT_TBL.'
         +
                         @key_column
         +
         '                            = KEY_TBL.[KEY]
           WHERE KEY_TBL.RANK >= 10
           ORDER BY KEY_TBL.RANK DESC
         ')
GO
 
Il est possible de contourner la complexité liée à l'utilisation de CONTAINSTABLE et FREETEXTTABLE en écrivant des procédures stockées qui acceptent quelques faits à propos de la requête, puis créent et exécutent la requête appropriée. La procédure suivante est une procédure simplifiée soumettant une requête FREETEXTTABLE. Les paramètres de la procédure sont affichés dans la table (tous sont des paramètres d'entrée).
 
Paramètre Requis Description  
@additional_predicates Facultatif S'il y en a, ils seront ajoutés avec AND après le prédicat FREETEXT. KEY_TBL.RANK peut être employé dans des expressions.  
@freetext_column Oui  
@freetext_search Oui Condition de recherche  
@from_table Oui  
@order_by_list Facultatif KEY_TBL.RANK peut être l'une des colonnes spécifiées.  
@select_list Oui KEY_TBL.RANK peut être l'une des colonnes spécifiées.  
 
 
Le code de la procédure est le suivant :
 
CREATE PROCEDURE freetext_rank_proc
       @select_list             nvarchar(1000),
       @from_table              nvarchar(517),
       @freetext_column         sysname,
       @freetext_search         nvarchar(1000),
       @additional_predicates  nvarchar(500)      = '',
       @order_by_list           nvarchar(500)      = ''
AS  
BEGIN
   DECLARE @table_id              integer,
           @unique_key_col_name   sysname,
           @add_pred_var          nvarchar(510),
           @order_by_var          nvarchar(510)  
 
   -- Get the name of the unique key column for this table.
   SET @table_id = Object_Id(@from_table)
   SET @unique_key_col_name =  
   Col_Name( @table_id,  
   ObjectProperty(@table_id, 'TableFullTextKeyColumn') )      
 
   -- If there is an additional_predicate, put AND() around it.
   IF @additional_predicates <> ''
      SET @add_pred_var = 'AND (' + @additional_predicates + ')'
   ELSE
      SET @add_pred_var = ''
 
   -- Insert ORDER BY, if needed.
   IF @order_by_list <> ''
      SET @order_by_var = 'ORDER BY ' + @order_by_var
   ELSE
      SET @order_by_var = ''
 
   -- Execute the SELECT statement.
   EXECUTE (   'SELECT '  
             + @select_list
             + ' FROM '
             + @from_table
             + ' AS FT_TBL, FreetextTable('
             + @from_table
             + ','
             + @freetext_column
             + ','''
             + @freetext_search
             + ''') AS KEY_TBL '
             + 'WHERE FT_TBL.'
             + @unique_key_col_name
             + ' = KEY_TBL.[KEY] '  
             + @add_pred_var
             + ' '
             + @order_by_var
           )
END
 
 
La procédure suivante peut être utilisée pour soumettre la requête :
 
USE Northwind
GO
EXECUTE freetext_rank_proc  
     'Description, KEY_TBL.RANK',                -- Select list
     'Categories',                               -- From
     'Description',                              -- Column
     'How can I make my own beers and ales?',    -- Freetext search
     'KEY_TBL.RANK >= 10',                       -- Additional predicate
     'KEY_TBL.RANK DESC'                         -- Order by
GO
 
Limitation des jeux de résultats
Dans de nombreuses requêtes de texte intégral, le nombre d'éléments répondant aux critères de recherche est très important. Pour éviter que la requête ne renvoie un trop grand nombre de correspondances, utilisez l'argument facultatif, top_n_by_rank, dans CONTAINSTABLE et FREETEXTTABLE pour spécifier le nombre de correspondances d'après le classement que vous voulez en retour.
 
Avec ces informations, Microsoft® SQL Server™ trie les correspondances par rang et ne retourne que ceux compris dans le nombre spécifié. Ce choix peut considérablement améliorer les performances. Une requête qui devrait normalement renvoyer 100 000 lignes à partir d'une table en comprenant 1 million, par exemple, sera traitée plus rapidement si seules les 100 premières lignes sont requises.
 
Si vous voulez que les 3 premières correspondances soient renvoyées uniquement dans un exemple précédent à l'aide de CONTAINSTABLE, la requête doit être rédigée comme suit :
 
USE   Northwind
GO
SELECT   K.RANK, CompanyName, ContactName, Address
FROM      Customers AS C
         INNER JOIN
         CONTAINSTABLE(Customers,Address, 'ISABOUT ("des*",
            Rue WEIGHT(0.5),
            Bouchers WEIGHT(0.9))', 3) AS K
         ON C.CustomerID = K.[KEY]
 
Voici le jeu de résultats obtenu :
 
RANK CompanyName          ContactName       address            
---- ------------         -----------       -------            
123  Bon app'             Laurence Lebihan  12, rue des Bouchers  
65   Du monde entier      Janine Labrune    67, rue des Cinquante Otages  
15   France restauration  Carine Schmitt    54, rue Royale
 
 
Voir aussi
 
CONTAINSTABLE
 
FREETEXTTABLE
 
©1988-2000 Microsoft Corporation. Tous droits réservés.


Message édité par Arjuna le 07-09-2004 à 15:16:58
n°844284
chaced
Posté le 07-09-2004 à 15:43:17  profilanswer
 

Arjuna a écrit :

Les fonctions en question sont censées être plus ou moins équivamentes à ces fonction de Microsoft SQL Server 2000 :
 


 
Ouai, mais les pluspart des hebergeur sont en mysql 3, et pas en postgresql :(


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°844286
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 15:44:42  profilanswer
 

Je pensais que c'était comme sous Oracle, un package "indépendant" de la version du SGBD, et que donc certains hébergeurs le proposaient.
 
Mais c'est vrai que je ne connais pas du tout les détails de l'implémentation de ces fonctions.

n°844288
pascal_
Posté le 07-09-2004 à 15:48:40  profilanswer
 

Arjuna a écrit :

Justement, je pensais que vous connaissiez/utilisiez les fonction de recherche sur texte indexé de MySQL. A priori, soit j'ai rêvé et ça n'existe pas (j'en suis pourtant convaincu) soit c'est un truc de la dernière version de MySQL, et n'est pas suffisament répendu chez les hébergeurs pour être utilisable...
En tout cas, je suis très surpris que vous ne connaissiez pas.


 
Ca existe : recherche FULLTEXT
 
edit: En français : http://dev.mysql.com/doc/mysql/fr/Fulltext_Search.html  :o


Message édité par pascal_ le 07-09-2004 à 15:51:12
n°844291
chaced
Posté le 07-09-2004 à 15:50:58  profilanswer
 

Arjuna a écrit :

Je pensais que c'était comme sous Oracle, un package "indépendant" de la version du SGBD, et que donc certains hébergeurs le proposaient.
 
Mais c'est vrai que je ne connais pas du tout les détails de l'implémentation de ces fonctions.


 
Peut etre en mysql4, je ne sais meme pas ce que ça apporte :lol:


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°844301
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 16:10:50  profilanswer
 

Ces fonctions ?
Ben... C'est le jour et la nuit... Sous MySQL, je sais pas trop ce que ça apporte, mais avec SQL Server, c'est dément... Logiquement avec MySQL ça doit faire à peut près pareil (j'ai ouïe-dire que l'amélioration de perfs n'est pas aussi énorme, ceci-dit, vu les préconnisations matérielles pour SQL Server, ça doit vite bouffer pas mal aussi quand on a une grosse base ;))
 

Citation :

Configuration matérielle requise  
 
Plusieurs processeurs : de un à quatre processeurs Xeon III fonctionnant à 500 MHz.
 
 
Mémoire : de 1 à 4 Go de mémoire RAM physique.
 
 
Plusieurs contrôleurs de disque dotés de plusieurs canaux, ou un contrôleur de disque unique avec plusieurs canaux.
 
 
Sous-systèmes d'E/S des disques : RAID0 (mise en bandes des disques sans protection de tolérance d'erreurs), RAID0+1 et RAID5.


 
Maintenant, ça fait petit comme config, mais à l'époque où c'est sorti, c'était au moins 10 000 € pour avoir un serveur avec la config minimale ;)
 
Bon, pour un petit exemple :
 
http://www.manga-torii.com
 
Dans le moteur de recherche, tapes "survivre+ !ken"
 
C'est une syntaxe "perso" que j'ai faite pour utiliser les fonctions du moteur.
 
"survivre+" indique de rechercher tous les articles contenant un mot ayant le même radical que "survivre". Le premier article retourné contient par exemple "survécut", mais pas "survivre". Le second contient "survivants", mais pas "survivre" non plus.
 
"!ken" indique de ne pas retourner les articles qui contiennent "ken".
 
Evidement, la base n'est pas très volumineuse... Ceci-dit, au départ j'avais fait des requêtes à base de LIKE, et c'était lamantablement lent. Là, je te laisse regarder en base de la page : "Page générée en 0.171 secondes" ;)


Message édité par Arjuna le 07-09-2004 à 16:14:58
n°844302
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 16:13:58  profilanswer
 

Idem, le moteur de recherche de ce forum (sur le même serveur que mon site) : http://forum.zozoll-online.com (ASP + SQL Server 2000) utilise ces fonctions de SQL Server. Par contre le parseur de mots clés est plus simple, il n'apporte pas grand chose de plus qu'un like, si ce n'est le rang de pertinance, et qu'une recherche sur l'intégralité des posts ne prends pas plus de temps qu'une recherche sur les deux mois derniers.

n°844304
chaced
Posté le 07-09-2004 à 16:14:37  profilanswer
 

Arjuna a écrit :

Ces fonctions ?
Ben... C'est le jour et la nuit... Sous MySQL, je sais pas trop ce que ça apporte, mais avec SQL Server, c'est dément... Logiquement avec MySQL ça doit faire à peut près pareil (j'ai ouïe-dire que l'amélioration de perfs n'est pas aussi énorme, ceci-dit, vu les préconnisations matérielles pour SQL Server, ça doit vite bouffer pas mal aussi ;))


 
Je parlais de mysql 3 vs 4 ;)


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°844306
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 16:16:55  profilanswer
 

chaced a écrit :

Je parlais de mysql 3 vs 4 ;)


Ah :)
 
Ben c'est pareil, c'est le jour et la nuit : tu passes d'un SGBD vraiment très merdique à un SGBD pas trop merdique.
Avec la V5.0, vous aurez enfin droit à un SGBD correct ;)

n°844332
Freekill
Electron libre…
Posté le 07-09-2004 à 17:05:54  profilanswer
 


 
Manque de parenthèses ?  :??:  
 

Code :
  1. preg_replace("/(\[color=#)([a-f\d]{3,6})(\])(.+?)(\[\/color\])/si","<span style=\"color:#\\2\">\\4</span>",$text);


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
n°844346
aspegic500​mg
Posté le 07-09-2004 à 17:22:40  profilanswer
 

Je rentre en formation de devellopeur web (contrat de qualif aprés mon dut, la boite me gardera aprés si c'est rentable vu que là c'est une nouvelle activité), y'a apparement un "projet" à réaliser dans le cadre de la formation, je me tate à faire un ptit forum :D (je sens que c'est idée qui risque de se transformer en galère :D :pt1cable: )

n°844350
fabien
Vive la super 5 !
Posté le 07-09-2004 à 17:25:11  profilanswer
 

aspegic500mg a écrit :

Je rentre en formation de devellopeur web (contrat de qualif aprés mon dut, la boite me gardera aprés si c'est rentable vu que là c'est une nouvelle activité), y'a apparement un "projet" à réaliser dans le cadre de la formation, je me tate à faire un ptit forum :D (je sens que c'est idée qui risque de se transformer en galère :D :pt1cable: )

ca depend le temps que tu aura pour developper ton forum .
Si tu as une année, c'est un bon projet, sinon je pense que tu n'aura pas le temps de faire un forum correctement (securisé,optimisé).

n°844404
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 18:09:07  profilanswer
 

Pense plutôt à faire un truc qui correspond au taff que tu es censé faire dans ta boîte...
 
Si y'a rien, est-ce qu'ils ont un intranet ? Si c'est pas le cas, attèle-toi à ça plutôt.
 
La valeur ajoutée d'un forum pour une entreprise est minime, et du coup niveau expérience à faire valoir, c'est un coup d'épée dans l'eau. Réserve ça pour le soir quand tu t'emmerdes ;)
 
PS: j'ai pas dit que c'était pas formateur hein ;) Juste que d'un point de vue chef d'entreprise, c'est comme un garagiste qui s'amuse à construire la tour-effeil en allumettes. "y dit qu'il voit pas le rapport". ;)

n°844445
Gilbert Go​sseyn
Dr Liara T'Soni
Posté le 07-09-2004 à 18:56:50  profilanswer
 

J'ai un problème avec les regex et une recherche dans Google (j'ai trouvé des trucs mais au mieux trop généralistes) ne m'ont pas répondu. Voila mon problème :
 
C'est pour l'analyse des couleurs avec un code hexadécimal. Le code est obligatoirement sur 6 caractères. Je veux donc vérifier que j'en ai bien 6 (pouvant être tous différents) pour effectuer ma traduction. Pour l'instant j'ai ceci :

"/\[#(.[a-fA-F0-9]*?)\](.+?)\[&#47;#(.[a-fA-F0-9]*?)\]/si"

Ce truc marche (transformation effecive) mais sans limite de nombre de caractère. Comment puis-je transformer ma chaine pour imposer le parsing pour 6 caractères rentrés ?
 
Je précise le replace quand même :

"<span style=\"color:\\1;\">\\2</span>",


Message édité par Gilbert Gosseyn le 07-09-2004 à 19:09:11

---------------
Tant que la couleur de la peau sera plus importante que celle des yeux, nous ne connaitrons pas la paix. ● L'écriture, c'est la mémoire du futur. ● Mods FO4
n°844446
aspegic500​mg
Posté le 07-09-2004 à 18:59:11  profilanswer
 

Je n'aurai qu'une semaine par mois pendant 1 an :whistle:  
Ma boite a déjà un intranet (je l'ai fais pendant mon stage de fin de dut et ils sont ravis :D )
Effectivement ce n'est pas un projet professionnelement interressant, mais si je le faisais ca serait pour le coté formateur (c'est énorme tout ce qu'on apprends, rien qu'en suivant ce topic pendant 50 pages j'ai appris des tas de choses :jap: Alors en faisant moi-meme un forum ca serait encore meilleur)
Enfin bon c'est clair que ca va pas être faisable dans le temps imparti :pt1cable:  
Et le soir c'est un peu mort, je vais déjà avoir mes modules à dévelloper pour bosser plus vite sur les projets de la boite (je suis tout seul à constituer l'equipe de dévellopement :whistle: donc j'aurai intérêt à pas perdre de temps :D )
 
Un jour peut-être un forum

n°844472
Gilbert Go​sseyn
Dr Liara T'Soni
Posté le 07-09-2004 à 19:43:48  profilanswer
 

Test :
 
t:/wwwdonnées/mesdatas_a_proteger


---------------
Tant que la couleur de la peau sera plus importante que celle des yeux, nous ne connaitrons pas la paix. ● L'écriture, c'est la mémoire du futur. ● Mods FO4
n°844473
Gilbert Go​sseyn
Dr Liara T'Soni
Posté le 07-09-2004 à 19:44:25  profilanswer
 

Gilbert Gosseyn a écrit :

Test :
 
t:/wwwdonnées/mesdatas_a_proteger

Pu**** ça buggue aussi :/. C'est irrésoluble ?


---------------
Tant que la couleur de la peau sera plus importante que celle des yeux, nous ne connaitrons pas la paix. ● L'écriture, c'est la mémoire du futur. ● Mods FO4
n°844480
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 20:02:36  profilanswer
 

apegic500mg > Ben... Pourquoi tu prends pas les projets de ta boîte comme projets ? Comprends pas. C'est un projet que tu dois faire à l'école c'est ça ?
 
Si c'est le cas, un forum n'est pas une si mauvaise idée finalement.
Plus en rapport avec l'activité d'entreprise, tu peux faire une appli dont la structure est assez similaire en soit : une quickplace.
 
Une appli où on crée des espaces pour les différents projets à gérer, et où on peut uploader des fichiers de specs, des sources, des PV de recette, etc. avec gestion du versionning.
Ca manque très souvent dans les petites entreprises (et même les grosses) où un lecteur réseau partagé est généralement utilisé à la place.
C'est un type de projet qui peut à la fois être très simple, tout comme il peut être extrêment complexe.
 
Sinon, un outils de track de bugs. Ca me semble une bonne idée aussi. Idem, généralement les entreprises n'ont pas de solution correcte pour gérer ça : soit c'est des usines à gaz, soit c'est des feuilles excel qui sont perdues dans les boîtes email :D
 

n°844481
fabien
Vive la super 5 !
Posté le 07-09-2004 à 20:05:53  profilanswer
 

Gilbert Gosseyn a écrit :

Pu**** ça buggue aussi :/. C'est irrésoluble ?

ben il suffit juste de detecter un espace avant et aprés : /
 

$text=str_replace(" :/ ","code html",$text);


---------------
Découvre le HFRcoin ✈ - smilies
n°844482
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 20:07:03  profilanswer
 

Gilbert Gosseyn a écrit :

J'ai un problème avec les regex et une recherche dans Google (j'ai trouvé des trucs mais au mieux trop généralistes) ne m'ont pas répondu. Voila mon problème :
 
C'est pour l'analyse des couleurs avec un code hexadécimal. Le code est obligatoirement sur 6 caractères. Je veux donc vérifier que j'en ai bien 6 (pouvant être tous différents) pour effectuer ma traduction. Pour l'instant j'ai ceci :

"/\[#(.[a-fA-F0-9]*?)\](.+?)\[&#47;#(.[a-fA-F0-9]*?)\]/si"

Ce truc marche (transformation effecive) mais sans limite de nombre de caractère. Comment puis-je transformer ma chaine pour imposer le parsing pour 6 caractères rentrés ?
 
Je précise le replace quand même :

"<span style=\"color:\\1;\">\\2</span>",




C'est la syntaxe M$, qui diffère un peu de la syntaxe posix. Mais dans l'ensemble, on retrouve ses petits assez facilement généralement.
 
http://msdn.microsoft.com/library/ [...] syntax.asp
 
Je cite "/\d{2}-\d{5}/ Validate an ID number consisting of 2 digits, a hyphen, and another 5 digits."
 
A priori t'es en plein dedans non ? ;)
Je dirais donc un truc du style :
 
/\[#(.[a-fA-F0-9]{6})\](.+?)\

n°844506
Gilbert Go​sseyn
Dr Liara T'Soni
Posté le 07-09-2004 à 21:34:16  profilanswer
 

Fabien a écrit :

ben il suffit juste de detecter un espace avant et aprés : /
 

$text=str_replace(" :/ ","code html",$text);



Ca ça a marché. Merci :jap:.
 
Par contre Magicbuzz, pour la partie de regex de gestion des couleurs, cela ne marche pas : j'utilise ceci dans deux array avec un preg_replage. Je pense que la syntaxe doit être particulière (genre Perl) :/.


Message édité par Gilbert Gosseyn le 07-09-2004 à 21:40:55

---------------
Tant que la couleur de la peau sera plus importante que celle des yeux, nous ne connaitrons pas la paix. ● L'écriture, c'est la mémoire du futur. ● Mods FO4
n°844508
chaced
Posté le 07-09-2004 à 21:38:14  profilanswer
 

Gilbert Gosseyn a écrit :

Ca ça a marché. Merci :jap:.
 
Par contre pour la partie de regex de gestion des couleurs, cela ne marche pas : j'utilise ceci dans deux array avec un preg_replage.


 
et si une phrase fini par un . juste avant le smiley ?


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°844509
Gilbert Go​sseyn
Dr Liara T'Soni
Posté le 07-09-2004 à 21:41:16  profilanswer
 

Accolé ? Je teste ...
 
Effectivement cela ne passe pas ainsi.
 
Edit > Ca ça marche : "/([^a-zA-Z0-9]):&#47([^a-zA-Z0-9])/i",
(quell que soit la situation ;)).
 
Sauf si un boulet accole le smilie à une phrase sans mettre de "." final (à la phrase) bien sûr ...


Message édité par Gilbert Gosseyn le 07-09-2004 à 21:47:20

---------------
Tant que la couleur de la peau sera plus importante que celle des yeux, nous ne connaitrons pas la paix. ● L'écriture, c'est la mémoire du futur. ● Mods FO4
n°844539
aspegic500​mg
Posté le 07-09-2004 à 22:39:10  profilanswer
 

Arjuna a écrit :

apegic500mg > Ben... Pourquoi tu prends pas les projets de ta boîte comme projets ? Comprends pas. C'est un projet que tu dois faire à l'école c'est ça ?
 
Si c'est le cas, un forum n'est pas une si mauvaise idée finalement.
Plus en rapport avec l'activité d'entreprise, tu peux faire une appli dont la structure est assez similaire en soit : une quickplace.
 
Une appli où on crée des espaces pour les différents projets à gérer, et où on peut uploader des fichiers de specs, des sources, des PV de recette, etc. avec gestion du versionning.
Ca manque très souvent dans les petites entreprises (et même les grosses) où un lecteur réseau partagé est généralement utilisé à la place.
C'est un type de projet qui peut à la fois être très simple, tout comme il peut être extrêment complexe.
 
Sinon, un outils de track de bugs. Ca me semble une bonne idée aussi. Idem, généralement les entreprises n'ont pas de solution correcte pour gérer ça : soit c'est des usines à gaz, soit c'est des feuilles excel qui sont perdues dans les boîtes email :D


 
Oui c'est ca, il y'a les projets de la boite (que je ferais pour des clients) et un projet à faire pour la formation (j'ai pas encore de détails sur la nature du bordel)
 
un forum ca me parait un peu long... Une quickplace c'est quoi exactement?
 
Merci pour les idées d'appli (on en a déjà un paquet, je vais pas chomer), c'est le genre de choses qu'on intègre dans des intranet qu'on vends (trés personnalisé pour le client, et de la qualité uniquement, on ne joue pas les web agency qui vends un truc et ne répondent plus de rien derrière :) )

n°844552
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-09-2004 à 22:53:26  profilanswer
 

aspegic500mg a écrit :

Oui c'est ca, il y'a les projets de la boite (que je ferais pour des clients) et un projet à faire pour la formation (j'ai pas encore de détails sur la nature du bordel)
 
un forum ca me parait un peu long... Une quickplace c'est quoi exactement?
 
Merci pour les idées d'appli (on en a déjà un paquet, je vais pas chomer), c'est le genre de choses qu'on intègre dans des intranet qu'on vends (trés personnalisé pour le client, et de la qualité uniquement, on ne joue pas les web agency qui vends un truc et ne répondent plus de rien derrière :) )


Une Quickplace, c'est le nom qu'on donne à l'outils de merde qu'on utilise chez GE.
C'est en fait une gestionnaire de documents paratgé pour les équipes, avec différents critères de documents (technique, marketing, tests, manuels, etc.) et ordonnés par projets. Ca gère en plus le versionning (quand on met à jour les documents, l'ancienne version est conservée, accessible en demandant un numéro de version). C'est un peu plus évolué que ça en fait, mais dans l'ensemble c'est ça.
 
PS: et on dit pas de mal des web agency :o moi ça vait depuis 1999 que je bosse sur un site ecommerce d'une filiale de General Elecric, et depuis tout ce temps j'ai jamais lâché le morceau. A un tel point que maintenant je suis en mission chez eux depuis plus de 2 ans, et que je suis en train de finir de réécrire leur site, après avoir écrit une palanquée d'outils intranets afin de pallier aux lacunes de leur ERP. Pis en plus, c'est moi qui me tape là Hotline quand ça plante, alors je peux te dire que ça plante pas souvent :D
-> T'as déjà essayé d'expliquer à un palestinien que sa commande est arrivée en Israël suite à un bug dans ton appli, sans recevoir un mail piégé ? :D

n°844607
aspegic500​mg
Posté le 07-09-2004 à 23:56:12  profilanswer
 

Arjuna a écrit :

Une Quickplace, c'est le nom qu'on donne à l'outils de merde qu'on utilise chez GE.
C'est en fait une gestionnaire de documents paratgé pour les équipes, avec différents critères de documents (technique, marketing, tests, manuels, etc.) et ordonnés par projets. Ca gère en plus le versionning (quand on met à jour les documents, l'ancienne version est conservée, accessible en demandant un numéro de version). C'est un peu plus évolué que ça en fait, mais dans l'ensemble c'est ça.
 
PS: et on dit pas de mal des web agency :o moi ça vait depuis 1999 que je bosse sur un site ecommerce d'une filiale de General Elecric, et depuis tout ce temps j'ai jamais lâché le morceau. A un tel point que maintenant je suis en mission chez eux depuis plus de 2 ans, et que je suis en train de finir de réécrire leur site, après avoir écrit une palanquée d'outils intranets afin de pallier aux lacunes de leur ERP. Pis en plus, c'est moi qui me tape là Hotline quand ça plante, alors je peux te dire que ça plante pas souvent :D
-> T'as déjà essayé d'expliquer à un palestinien que sa commande est arrivée en Israël suite à un bug dans ton appli, sans recevoir un mail piégé ? :D


 
Ah ok tu fais dans la qualitay, c'est good :) , c'est pas la majorité qui fait ca malheureusement :o  
 
La gestion des versions pourquoi pas, mais ca fonctionne comment, c'est un genre de catalogues des documents (par cat et sous-cat) avec un formulaire d'upload où on peut mettre sa nouvelle version ?

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  181  182  183  ..  486  487  488  489  490  491

Aller à :
Ajouter une réponse
 

Sujets relatifs
question avec les forums phpbb2[php] trouver la premier place ou inserer un enregistrement (résolu)
Forums phpBBQui connait l'algo du Passticket et sa mise en place en VB ?
[Merise] Mise en place d'un MCDFocus mal placé....
[Blabla/Prog] Les développeurs foromeurs sont-ils des feignasses?Mise en place d'un formulaire CGI
forums création de site internetJava - Mise en place d'une api (Servlet)
Plus de sujets relatifs à : les développeurs de forums, les 3/4 des forums sont down /o\


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)