Jump to content


Photo

Ignorar Caractéres Com Assento Numa Pesquisa


  • Faça o login para participar
4 replies to this topic

#1 xamonix

xamonix

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 23/03/2012, 16:35

Olá.
Precisava da vossa ajuda. Tenho uma funcão de pesquisa simples em PHP. Acontece que se eu escrever por exemplo "amalia" como termo de pesquisa ele não devolve resultados, mas se escrever "amália" já devolve. Ou seja o que eu pretendia é que ele ignorasse o acento ao fazer a pesquisa na base de dados e devolvesses os resultados.

Envio o código:

function jm_search(){
		global $database, $sstring, $scategoria, $my, $cinConfig, $Itemid, $option, $mainframe;	
		
		$suchstring = trim( strtolower( $sstring ) );
			
		
		$searchTerms = explode(' ', $suchstring);
        $searchTermBits = array();
        foreach ($searchTerms as $term) {
    $term = trim($term);
    if (!empty($term)) {
        $searchTermBits[] = "".$scategoria." LIKE '%$term%' ";
    }
}
	    $query1 = "SELECT * FROM #__jmovies WHERE ".implode(' AND ', $searchTermBits)." AND published = 1 AND access <= ".(int)$my->gid." ORDER BY titolo";	

		$database->setQuery($query1);
		//echo $database->getQuery();
		$rows = $database->loadObjectList();
		$total = count($rows);

		
		
		switch ($scategoria) {
			case 'titolo':
			$scat = "Nome da letra ";
			break;
			case 'anno':
			$scat = " Autor da letra ";
			break;
			case 'nazione':
			$scat = " Autor da música ";
			break;
			case 'regista':
			$scat = " Repertório ";
			break;
			case 'attorealtri':
			$scat = " Fado original ";
			break;
			
		}

Obrigado pelo vosso tempo e pela ajuda!

#2 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 23/03/2012, 19:13

veja se isso resolve

http://www.drsolutio...gesxp_mysql.pdf
<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>

#3 xamonix

xamonix

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 24/03/2012, 07:56

Olá.
Sim, resolveu o problema.
Estou-lhe imensamente grato.
Bem haja!

(y)

Olá uma vez mais.

Tenho uma outra dúvida semelhante à primeira. Eu tenho um index alfabetico (para catalogar letras de músicas), assim se o usuário pretende ver todas as letras de música começadas por "A" simplesmente clica em "A". Acontece que os resultados devolvidos não incluem letras começadas por "À" por exemplo "Ás pedras da rua".

O principio a utilizar aqui será o mesmo da pesquisa?

#4 Squall Robert

Squall Robert

    Mr. Squall - Mais Carne do que Osso (hihi)

  • Usuários
  • 507 posts
  • Sexo:Masculino
  • Localidade:Curitiba
  • Interesses:Php ... Php...Php

Posted 24/03/2012, 09:44

sim, é a mesma coisa.

mas como a busca la dve estar com %% no incio ele vai trazer tudo que contenha a

então coloca 'a%'

ai ele vai trazer tudo que começa com a


não esquece de clicar no Sinal de MAIS NO CANTO DO POST para dizer que foi ultil para vc
<?php

$squall = new Squall();

$squall->Ajudando("você");

$resultado = $squall->solucao();  ?>

#5 xamonix

xamonix

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 24/03/2012, 10:57

Não estou a conseguir introduzir a função REGEXP no código (devo dizer que sou um novato nestas coisas do PHP).

Envio o código que tenho do Index Alfa para devolver resultados quando se clica numa letra.
Qualquer ajuda será sempre bem-vinda.

switch($task){
			case "listforletter":
	
				$action = "index.php?option=".$option."&amp;Itemid=".$Itemid."&amp;task=".$task."&amp;lettera=".$lettera;
				if($lettera!='0')
					$database->setQuery("SELECT COUNT(a.id) FROM #__jmovies as a WHERE a.access <= ".(int)$my->gid." AND SUBSTRING(a.titolo,1,1)='".$lettera."'");
				else 
					$database->setQuery("SELECT COUNT(a.id) FROM #__jmovies as a WHERE a.access <= ".(int)$my->gid." AND (SUBSTRING(a.titolo,1,1)='0'");
				$total = $database->loadResult();
				break;

Obrigado pela vossa ajuda e paciência.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq