France Hardware : Forums de discussion - Découvrez notre nouveau comparateur d'offres Internet
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
29 511 membres enregistrés - 2 069 318 posts - 122 026 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Langages Web
                [resolut]moteur recherche
82 connectés(record : 2799 le 29 May 2016 - 15 h 34)

Vous devez vous connecter pour répondre au topic.
1,2,3 | Suivant
[resolut]moteur recherche

keo
symfony2

Messages : 3 031
Inscrit le 08/11/02
Non connecté
  Posté le 14 February 2010 - 21 h 43 m 21 s


Message édité 5 fois, la dernière par keo le 25 November 2010 - 21 h 06.

java

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 15 February 2010 - 14 h 49 m 34 s
salut,

alors deja perso j'aime pas trop la notation abregee "$(function() {});", je lui prefere :
    Code     
1. $(document).ready(function() {
2.   bla bla
3. });
mais c'est un detail ! ce qu'il faut comprendre c'est que ton carousel doit se lancer uniquement quand le dom est charge, cela semble logique car si les elements ne sont pas charges, jquery ne peut pas les traiter, c'est un point essentiel dans la comprehension de jquery. ici donc tu dis : quand mon dom est charge, je lance le plugin carousel. dans ton code, la ligne $("div.foo").carousel() fait double emploi, une fois tu le lances pour le div ayant pour classe "foo" et tu le relances ensuite pour tout div avec la ligne ou tu lui colles comme param : direction : vertical. ta 1ere erreur est donc celle ci : tu dois lancer le plugin sur le bon container, donc a tout pris eviter le second lancement car il s'adresse a tous les divs de ta page, ce qui va a coup sur foirer a un moment ou a un autre. donc dans un premier temps, virer la derniere ligne de ton script ne peut pas faire de mal. ensuite, remarques que ton second lancement n'intervient pas quand le dom est charge, cela ne peut donc pas fonctionner. encore un point, il te manque la balise html du depart, tu ne specifies que le doctype ;) idem, tes balises body sont absentes. pour que jquery tourne il faut que ta structure de page soit nikel. pour resumer, je ferais cela :
    Code     
 1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-fr" lang="fr-fr" dir="ltr" >
 3. 
 4. <head>
 5.   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
 6.   <script type="text/javascript" src="carousel.js"></script>
 7.   <script type="text/javascript">
 8.   $(document).ready(function() {
 9.     $('#foo').carousel( { direction: 'vertical' } );
10.   });
11.   </script>
12. </head>
13. 
14. <body>
15. 
16.   <div id="foo">
17.     <ul>
18.       <li><img src="logo.png" /></li>
19.       <li><img src="logo1.png" /></li>
20.       <li><img src="logo2.png" /></li>
21.       <li><img src="logo3.png" /></li>
22.     </ul>
23.   </div>
24. 
25. </body>
26. 
27. </html>





:firefox: :ol:

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 15 February 2010 - 14 h 56 m 27 s
waouh, je viens de jeter un oeil a la page du plugin, je deteste ces trucs qui sont mal expliques ou du moins sont mal gaules car quand tu commences tu as vite fait de te prendre les pieds dans les pedales...

comme je te disais, et contrairement a ce qui est sur le site du plugin, il est bon de restreindre le selecteur, donc ne pas utiliser $('div') qui veut dire que tu appliques le carousel a tous les divs, pour lui preferer $('div.foo') voire mieux encore $('div#foo') qui est equivalent a $('#foo')

connais tu la difference entre le "." et le "#" ?
quand tu utilises le ".", tu selectionnes les elements ayant pour classe ce qui suit le point, donc si tu ecris $('.foo'), tu vas selectionner tous les elements qui ont la classe "foo". si tu utilises $('div.foo') tu selectionnes tous les elements de type div qui ont la classe foo.
dans le cas du #, ce n'est plus une classe, c'est un id, donc un element unique et non une collection d'elements. il est donc bein evident que si tu ne souhaites afficher qu'un seul carousel sur ta page, la bonne notation sera $('#foo').

pourquoi ?

tout simplement pour des problemes de perfs. en effet, jquery charge ton plugin une fois que le dom est charge, si tu as une classe, il va parser toute ta page a la recherche d'elements de la classe, avec un id, une fois qu'il a trouve l'id il s'arrete, donc ca va plus vite. il est plus aise de traiter un id qu'une classe en terme de perf.

la classe va te permettre par exemple de gerer un effet sur plusieurs elements de meme classe, typiquement tu affiches un tableau et tu veux colorier certaines cellules et pas d'autres...

comprends tu mieux la demarche ?



:firefox: :ol:

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 15 February 2010 - 15 h 00 m 52 s
je te conseille d'utiliser firefox pour tes devs en downloadant la web developper toolbar, elle t'apportera pas mal d'aide pour le diag. je te conseille aussi firebug.

mais attention, la base est d'avoir une structure propre.

dis moi ce que ca donne avec le code que je t'ai file ;)



:firefox: :ol:

keo
symfony2

Messages : 3 031
Inscrit le 08/11/02
Non connecté
  Posté le 15 February 2010 - 17 h 55 m 44 s
merci de tes explications, donc en utilisant
    Code     
 1. $(document).ready(function() 
 2. {
 3. });
 4. 
 5. jquery attend que l'objet doucment soit prêt, donc toutes les balises seront charger, le naviguateur a 
 6. lu toutes la page sans erreur
 7. (en fait si par exemple je fait ou oublie de fermeture d'une balise, l'objet doucment ne sera pas prêt?
 8. la structure du dom est incorrecte
 9. )
10. 

pour l'histoire du # et du .

en faisant $('.foo') il cherche la classe foo;
si je fait $('div.foo') il cherche la balise div et la classe foo

donc si j'utilise $('.foo') je pourrais donc mettre n'importe quelle balse <a> class="foo"..
<p class="foo">.. il le trouvera?

pour le # si ce n'est plus une classe on peut utiliser directement l'objet id?
$('id.foo')?

qu'est ce cela veut dire:

il va parser toute ta page ? chaque balise il va attribuer un id?

le code que tu m'a donné fonctionne parfaitement :jap:
, j'aimerais que le carousel change en mode horizontal (et après en automatique :D avec autoSlide: true )

j'ai modifier
direction: "horizontal"

mais apparament ca ne fonctionne pas, sur le lien il me met que par défaut c'est en vertical mais pas en
horizontal, je ne touve pas l'info.


j'ai essayer web developper et firbug , c'est bien on peu décomposer nos page web :)


Message édité 6 fois, la dernière par keo le 15 February 2010 - 19 h 33.

java

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 19 February 2010 - 22 h 18 m 58 s


Le 15 février 2010 - 17 h 55, keo a écrit :
merci de tes explications, donc en utilisant
    Code     
 1. $(document).ready(function() 
 2. {
 3. });
 4. 
 5. jquery attend que l'objet doucment soit prêt, donc toutes les balises seront charger, le naviguateur a 
 6. lu toutes la page sans erreur
 7. (en fait si par exemple je fait ou oublie de fermeture d'une balise, l'objet doucment ne sera pas prêt?
 8. la structure du dom est incorrecte
 9. )
10. 

pour l'histoire du # et du .

en faisant $('.foo') il cherche la classe foo;
si je fait $('div.foo') il cherche la balise div et la classe foo

donc si j'utilise $('.foo') je pourrais donc mettre n'importe quelle balse <a> class="foo"..
<p class="foo">.. il le trouvera?



OUI




pour le # si ce n'est plus une classe on peut utiliser directement l'objet id?
$('id.foo')?

qu'est ce cela veut dire:

il va parser toute ta page ? chaque balise il va attribuer un id?


soit tu utilises une classe, dans le cas ou tu aies plusieurs instances d'un element, par exemple les lignes d'un tableau, soit si l'instance est unique, genre un bouton precis, tu utilises l'id. sinon ca se comporte pareil, la seule difference est que la classe s'adresse a une collection d'elements.

sinon $('id.foo') n'existe pas, c'est $('#foo') qui renseigne une balise ayant pour id 'foo'







le code que tu m'a donné fonctionne parfaitement :jap:



cool




, j'aimerais que le carousel change en mode horizontal (et après en automatique :D avec autoSlide: true )

j'ai modifier
direction: "horizontal"

mais apparament ca ne fonctionne pas, sur le lien il me met que par défaut c'est en vertical mais pas en
horizontal, je ne touve pas l'info.


faut que j'aille voir la page du plugin atta



j'ai essayer web developper et firbug , c'est bien on peu décomposer nos page web :)



yes, tres pratique ;)



:firefox: :ol:

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 19 February 2010 - 22 h 23 m 09 s
pour la version horizontale je pense que ca doit donner :

    Code     
1. $(document).ready(function(){
2.   $('#foo').carousel( { autoSlide : true } );
3. });



:firefox: :ol:

keo
symfony2

Messages : 3 031
Inscrit le 08/11/02
Non connecté
  Posté le 21 February 2010 - 10 h 15 m 05 s
j'ai esssayer ce code mais ca ne fonctionne pas :(

    Code     
 1.  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 2.  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-fr" lang="fr-fr" dir="ltr" >
 3.  
 4. <head>
 5. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
 6. <script type="text/javascript" src="carousel.js"></script>
 7. <script type="text/javascript">
 8. 	$(document).ready(function() {
 9.  $('#foo').carousel( { autoSlide : true } );
10. 
11. 	});
12. </script>
13. </head>
14. 
15. <body>
16. <div id="foo">
17.     <ul>
18.       <li><img src="logo.png" /></li>
19.       <li><img src="logo1.png" /></li>
20.       <li><img src="logo2.png" /></li>
21.        <li><img src="logo3.png" /></li>
22. </ul>
23. </div>
24. 
25. </body>
26. 
27. </html>



ca y'est on m'a donnée les mot de passe de la boite et a quoi ressemble la bdd, j'ai essayer de faire un moteur de recherche spécial articles d'electronique, c'est pas évident y a plein de caractère spéciaux des chiffres et des lettres en plus des espaces. Tu ne connaitrais pas un script de moteur de recherche tous prêt? ou sinon j'avais pensé
de piquer le moteur de recherche de oscommerce ou de jooomla mais je pense que ca pas être facile de touver le bout de scipt ou déja de le trouver?

sinon connait tu apache solr, est difficle de l'utiilise et de le mettre en oeuvre


Message édité 2 fois, la dernière par keo le 21 February 2010 - 19 h 58.

java

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 22 February 2010 - 11 h 47 m 53 s
salut,

qu'est ce qui ne marche pas ? message d'erreur ?

sinon pour ton moteur de recherche franchement bon courage, moi j'en ai fait un moi meme car je ne trouvais rien de vraiment correspondant a ce que je cherche. ca demande pas mal de connaissances mais pour commencer cherches la dessus :
- levenstein
- dead words

++



:firefox: :ol:

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 22 February 2010 - 11 h 47 m 54 s
salut,

qu'est ce qui ne marche pas ? message d'erreur ?

sinon pour ton moteur de recherche franchement bon courage, moi j'en ai fait un moi meme car je ne trouvais rien de vraiment correspondant a ce que je cherche. ca demande pas mal de connaissances mais pour commencer cherches la dessus :
- levenstein
- dead words

++



:firefox: :ol:

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 22 February 2010 - 11 h 50 m 26 s
sinon j'ai pas regarde la source mais ptet que pour une raison a la con le script ne prend pas les id mais seulement les classes... a vérifier dans leur doc, si tel est le cas, reutilises <div class="foo"> et $('.foo')



:firefox: :ol:

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 22 February 2010 - 11 h 52 m 41 s
sinon pour solr, je connais de nom mais il te faudra un dedie pour l'installer ainsi que java.
perso je ne fais que du php quasiment donc toutes mes recherches sont faites en php, idem pour les indexations :jap:



:firefox: :ol:

keo
symfony2

Messages : 3 031
Inscrit le 08/11/02
Non connecté
  Posté le 22 February 2010 - 18 h 10 m 24 s


Message édité 13 fois, la dernière par keo le 25 November 2010 - 21 h 07.

java

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 23 February 2010 - 08 h 39 m 07 s
alors ta parse error c'est parce qu'il te manque une parenthese fermante, that's all ;) supprimer une ligne n'est pas une solution :jap:

mais bon, globalement retraiter ta chaine de cette facon n'est pas une super bonne idee je trouve, regardes cote FULLTEXT plutot.
de toute facon, avant de te lancer dans de la recherche il faudrait deja que ton modele de donnees soit termine, la tu bosses dans le vent ;)

++



:firefox: :ol:

keo
symfony2

Messages : 3 031
Inscrit le 08/11/02
Non connecté
  Posté le 23 February 2010 - 12 h 56 m 29 s
ok, j'ai essayer full text mais apparament ca ne fonctionne pas très bien:
    Code     
 1.  
 2. SELECT *FROM matable WHERE MATCH (ref) AGAINST ('tsx')
 3.  
 4. 
 5. dans ma table il y a par exemple 2 produit qui s'appellent tsx17 et tsx7
 6. pouquoi avec cette requete il ne trouve rien, j'aimerais qu'il puisse afficher au moin
 7. tsx17 et tsx7
 8. vous aller me dire d'utiliser des % entre tsx mais j'aimerai que mon moteur
 9. sache trouver cette article même si l'on rentre
10. ts7 ou encore sx7
11.  
12. $find_device=" SELECT * FROM matable WHERE ref LIKE '%$article%' ORDER BY id_article ";
13.  
    Code     
1. il faudrait deja que ton modele de donnees 


que veut tu dire? un exemple?
chercher tous ce qui commence par tsx?
comment les références sont construites?(par exemple tous ce qui commence par #^[60-9]{2}# se sont des articles qui appartienne a siemens....
est ce que un modèle d'article c'est cela?
XX-XXXX-XXXX
XX=numéro article
XXXX=numéros série
XXXX= date....


Message édité 4 fois, la dernière par keo le 23 February 2010 - 13 h 25.

java

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 23 February 2010 - 14 h 14 m 05 s
ce que je veux dire c'est que tu ne peux en aucun cas bosser sur un moteur si d'avance ta base n'est pas construite de façon a pouvoir appréhender une recherche !

j(y connais rien en composant, mais imaginons que les références se décomposent alors il faudrait décomposer la référence recherchée pour rechercher les occurrences de chaque partie. pour cela il faut bien entendu que la décomposition soit faite sur chaque produit dans la base de données, on en revient tjr au même point...

en gros, imaginons une ref sur 3 caractères pour faire simple...
le 1er car est le type de composant : 1=condensateur 2=résistance 3=ma_chaussette
le 2eme car représente la couleur
1=rouge 2=bleu 3=vert
le 3eme car représente la valeur numérique associée
1=100 2=200 3=300

alors pour la table composant je ferais :
id_composant (id unique)
ref_composant (sur 3 caracteres)
famille_composant
couleur_composant
valeur_composant

du coup quand on lance une recherche, on casse la chaine pour retrouver les éléments individuels et on fait une recherche la dessus. ça s'indexe donc ça va vite et surtout ça trouve...

tout est la, bien construire ses tables et bien réfléchir a tout avant de se lancer dans le code

ta 1ere requête avec match est bidon
la seconde ne peut pas marcher puisque le % est un joker mais ici la chaine entre les 2 % est obligatoire ce qui ne te permettra jamais de gérer une différence d'un caractère.

sinon pour ça ya levenstein comme déjà propose :jap:



:firefox: :ol:

keo
symfony2

Messages : 3 031
Inscrit le 08/11/02
Non connecté
  Posté le 23 February 2010 - 20 h 00 m 05 s


Message édité 8 fois, la dernière par keo le 25 November 2010 - 21 h 09.

java

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 24 February 2010 - 09 h 40 m 39 s
salut,

si ta contrainte est que tout est en une seule table alors je dirais... que t'es dans la merde !!! non sans rire, une base de données ne comportant qu'une seule table n'est pas une base de données du moins par définition pas relationnelle, c'est tout au plus un fichier excel :(

de fait, pas la peine de m'envoyer ta structure, je connais d'avance ma réponse a ce genre de problématique qui est de tout faire péter !

dans ce cas, il n'y a pas a retourner le problème dans tous les sens, la seule chose qui va t'aider est levenstein, mais a utiliser avec précaution car suivant les réglages que tu fais tu peux trouver tout et n'importe quoi :jap:

je te conseille aussi d'utiliser une liste de dead stop words en amont pour limiter la casse ;)

++

PS : voir aussi : http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html


Message édité 1 fois, la dernière par grabber le 24 February 2010 - 09 h 43.

:firefox: :ol:

keo
symfony2

Messages : 3 031
Inscrit le 08/11/02
Non connecté
  Posté le 24 February 2010 - 12 h 54 m 33 s


Message édité 10 fois, la dernière par keo le 25 November 2010 - 21 h 08.

java

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 25 February 2010 - 09 h 28 m 28 s
alors je vais faire court car j'ai plein de taff ce matin. en ce qui concerne les relations entre tes tables, il faut bien comprendre une chose essentielle : les tables relationnelles.
je prends un exemple précis : les photos.
dans ton option, tu as 5 champs photo dans ta table, cette structure est a proscrire car le jour ou tu en as une 6eme il faut péter ta table, donc péter tes requêtes, donc péter ton code :(
la solution est de créer une table associative, car ici une ref peut avoir x photos, donc ok pour ta table des articles avec tes refs, mais ensuite tu fais une table article_photo avec comme champs : id_article, nom_photo, défaut
en gros une ligne par photo donc pas de limitation sur le nombre de photos pour un article donne, et la dernière colonne c'est pour le choix (0 ou 1) de la photo par défaut pour un article, ça te permettra d'afficher toujours la même photo sur la fiche article. tu pourrais aussi ajouter une colonne pour l'ordre des photos si par exemple tu veux faire un diaporama des photos avec un ordre précis.

ok pour les tables type et marque.

pour la table des refs, autant mettre la ref en dur dans la table des articles, pas besoin d'une ref externe puisque 1 ref = 1 article.

pour le code, bcp de choses a revoir :
1er cadre : entre * et from, met un espace, mysql ou php c kif kif : soignes ta syntaxe !
dans l'avant dernier echo pour la photo, syntaxe crado :(
on écrit ça comme ça :
    Code php    
1. echo "<td><a href=\"img320240/".$photo."\">photo</a></td>";


2eme cadre : il manque un "e" a RewriteEngine on
pour le reste, la réécriture dépend aussi de ton serveur et de sa conf, donc a voir. attention a ta regexp qui ne prend que les caractères classiques et par le tiret ou le underscore.

3eme cadre : je pense que ça vient du "e" manquant

++



:firefox: :ol:

1,2,3 | Suivant
Page genérée en 0.5172 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL | Actualité ADSL | Deligo | Appareil photo | Commande Au Volant
Creative Commons
Message Boards and Forums Directory