Como puedo hacer que me muestre articulos simlares

Desde
22 Ago 2010
Mensajes
6.590
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Hola vengo apedir una ayudita de php y estoy atorado con este codigo

PHP:
 <?php
                    $query = mysqli_query($c, 'SELECT codigo, title, description, link, serial, query, death FROM '._table_.' WHERE title = \''.$info['title'].'\' ORDER BY '.mt_rand(1,6).','.mt_rand(1,6).' LIMIT 5'); // ORDER BY RAND()
                    while($data = mysqli_fetch_assoc($query))
                    {
                        if(empty($data)) {echo 'No hay trabajos relacionados'; break;}                        
                        echo '<div><h2><a  href="/m/similar/'.trim(strip_tags(str_replace(' ', '-', $data['title']))).'_'.$data['serial'].'.html">'.utf8_encode($data['title']).'</a></h2></div><p class="description" style="text-transform: lowercase"> '.strip_tags(strtolower(str_ireplace('jos', '', substr($data['description'],0, 300)))).'</p>';
                    }

                ?>


Lo que quiero es que me muestre 5 articulos similares cuando entran al articulo.

Pero como esta ahorita el codigo si muestra los articulos pero si el articulo no tiene exactamente el mismo titulo no muestra lista de 5 similares o bien muestra solo el mismo arituculo al cual se entro.

Alguien tiene idea de que me muestre similares pero que no tenga que ser exactamente el mismo titulo
 

nestornoe

Épsilon
Programador
Desde
11 Mar 2013
Mensajes
884
Tienes que utilizar LIKE en la consulta

Insertar CODE, HTML o PHP:
$query = mysqli_query($c, 'SELECT codigo, title, description, link, serial, query, death FROM '._table_.' WHERE title LIKE \%''.$info['title'].'\%' ORDER BY '.mt_rand(1,6).','.mt_rand(1,6).' LIMIT 5'); // ORDER BY RAND()

Saludos
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101
Hola vengo apedir una ayudita de php y estoy atorado con este codigo

PHP:
 <?php
                    $query = mysqli_query($c, 'SELECT codigo, title, description, link, serial, query, death FROM '._table_.' WHERE title = \''.$info['title'].'\' ORDER BY '.mt_rand(1,6).','.mt_rand(1,6).' LIMIT 5'); // ORDER BY RAND()
                    while($data = mysqli_fetch_assoc($query))
                    {
                        if(empty($data)) {echo 'No hay trabajos relacionados'; break;}                        
                        echo '<div><h2><a  href="/m/similar/'.trim(strip_tags(str_replace(' ', '-', $data['title']))).'_'.$data['serial'].'.html">'.utf8_encode($data['title']).'</a></h2></div><p class="description" style="text-transform: lowercase"> '.strip_tags(strtolower(str_ireplace('jos', '', substr($data['description'],0, 300)))).'</p>';
                    }

                ?>


Lo que quiero es que me muestre 5 articulos similares cuando entran al articulo.

Pero como esta ahorita el codigo si muestra los articulos pero si el articulo no tiene exactamente el mismo titulo no muestra lista de 5 similares o bien muestra solo el mismo arituculo al cual se entro.

Alguien tiene idea de que me muestre similares pero que no tenga que ser exactamente el mismo titulo

PHP:
$A = explode(' ',$info['title']);
$C = "";
foreach($A as $B){
	$C.='title LIKE \'%'.$B.'%\' OR ';
}
$C = substr($C,0,strlen($C)-4);

$query = mysqli_query($c, 'SELECT codigo, title, description, link, serial, query, death FROM '._table_.' WHERE '.$C.' ORDER BY '.mt_rand(1,6).','.mt_rand(1,6).' LIMIT 5');

esto arma varios LIKE OR... para separar el titulo como si fueran keys... tmb podes limitar que las keys a buscar sean mayores de 3 caracteres, para evitar, el, a, no,...etc...
PHP:
foreach($A as $B){
	if(strlen($B)>3) $C.='title LIKE \'%'.$B.'%\' OR ';
}


Tienes que utilizar LIKE en la consulta

Insertar CODE, HTML o PHP:
$query = mysqli_query($c, 'SELECT codigo, title, description, link, serial, query, death FROM '._table_.' WHERE title LIKE \%''.$info['title'].'\%' ORDER BY '.mt_rand(1,6).','.mt_rand(1,6).' LIMIT 5'); // ORDER BY RAND()

Saludos
no funcionaria porque si tengo el titulo 'hola como estas' buscaria LIKE '%hola como estas%'... y el titulo tendria que coincidir con eso, solo que puede variar el inicio y final...
 

blogers

Pi
SEO
Desde
22 Ago 2010
Mensajes
6.590
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Me funciono con uno gracias [MENTION=41713]nestornoe[/MENTION]


Quedo de maravilla gracias [MENTION=9679]cicklow[/MENTION]

Lo que no entendi fue de las keys del ultimo codigo

PHP:
foreach($A as $B){
    if(strlen($B)>3) $C.='title LIKE \'%'.$B.'%\' OR ';
}
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101
Me funciono con uno gracias[MENTION]
nestornoe[/MENTION]


Quedo de maravilla gracias[MENTION]cicklow[/MENTION]

Lo que no entendi fue de las keys del ultimo codigo

PHP:
foreach($A as $B){
    if(strlen($B)>3) $C.='title LIKE \'%'.$B.'%\' OR ';
}

"tmb podes limitar que las keys a buscar sean mayores de 3 caracteres, para evitar, el, a, no,...etc..."......
 

blogers

Pi
SEO
Desde
22 Ago 2010
Mensajes
6.590
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Gracias ya quedo excelente gran ayuda [MENTION=9679]cicklow[/MENTION]
"tmb podes limitar que las keys a buscar sean mayores de 3 caracteres, para evitar, el, a, no,...etc..."......

:encouragement:
 
Arriba