requete degressive PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requete degressive PHP

Re: requete degressive PHP

par moogli » 11 oct. 2013, 00:07

For($i=count($letablo) -1 ; $i >0 ; $i-- ){
For($j = 0 ; $j <= $i ; $j++){
// construction de la chaîne à utiliser pour la recherche
}

}

On aurais ou imaginer la même chose avec des array_splice ;)

Regarde si tu peux le faire côté base tu aura surement de meilleur performance ;)

@+

Re: requete degressive PHP

par damien_55 » 10 oct. 2013, 22:13

Salut,

Oui l'ordre est important. C'est un peu comme un indice de similitude du plus élévé au moins élévé.

j'ai pas compris ton idée:

un for sur le tableau mais en partant de la fin, dedans une boucle prend tous de l'élément courant vers le premier ? pourrais tu m'expliquer, svp

Re: requete degressive PHP

par moogli » 10 oct. 2013, 21:50

salut,

est ce que l'ordre est important ?
une idée simple
explode sur la chaine
un for sur le tableau mais en partant de la fin, dedans une boucle prend tous de l'élément courant vers le premier

@+

Re: requete degressive PHP

par damien_55 » 10 oct. 2013, 21:21

Je crois avoir trouvé, je vais partir de ce script et le retravaillé voir si ça marche:

$titre_keyword  = explode(" ",$_TITRE); //$_TITRE est le titre de l'article en cours
                
                $cpt=0;
                foreach($titre_keyword as $k => $v ) {
                  if (strlen($v)>5) { // On n'utilise que les mots de plus de 5 lettres
                    if ($cpt !=0) { 
                      if($cpt ==1) { $q .=" AND ("; }else{ $q .=" OR "; } //Le premier mot sera obligatoire le reste facultatif)
                    }
                  $q .= "post_titre LIKE '%".$v."%' " ;
                  $cpt++;
                  }
                }
                if((ereg("OR",$q)) OR (ereg("AND",$q))) $q .=")"; // Fermeture de la parenthèse si on a trouvé au moins un mot de plus de 5 lettres)
                
                $sql = "SELECT DISTINCT post_titre_url, post_titre, cat_id FROM content_post WHERE cat_id='6' AND post_lang='$_LANG' AND post_selected = '0' AND post_pub='1' AND post_titre_url != $_URL_ARTICLE AND ( $q ) ORDER BY post_id DESC LIMIT 0, 10 ";

requete degressive PHP

par damien_55 » 10 oct. 2013, 21:14

Bonjour à tous,

J'ai un champ avec 3 mots (par exemple ça peut etre plus)

Je cherche a faire un script qui recherche tous les phrases qui contiennent les 3 mots puis les deux mots ou un seul des mots.

j'ai fait un explode sur le champs mots mais je n'arrive pas a passer à la recherche sur deux mots puis sur un mot ?
$relatif = "SELECT id, phrase
					FROM texte
					WHERE  id <>'".addslashes($_GET['id'])."'";
	foreach($motscles as $motcle) {
		$mot = strtoupper(addslashes($motcle));
		$relatif .= " AND (titre LIKE '%".$mot."%' OR titre LIKE '".$mot."%' OR titre LIKE '%".$mot."')  ";
	}
	$relatif .= " ORDER BY date DESC limit 6";
Merci de votre aide.