entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

PHP Como insertar datos de un bucle for en un array

Buenas! aprovechare esta pregunta para aclarar dos dudas. Primero, estoy realizando un buscador de coincidencias de palabras en mi base de datos de esta manera...

<?

                 include '../php/conexion-pbd.php';
$select_post_bc = "SELECT titulo FROM post_pbd";

               $result_post_bc = mysqli_query($con,$select_post_bc);

               while ($row=mysqli_fetch_array($result_post_bc)){

                   $suma = '';  

          $resp = '';

             $row['titulo'] = strtolower($row['titulo']);    

                   $busqueda = strtolower($busqueda);  

                   $titulo = explode(" ",$row['titulo']);    
               $bqd = explode(" ",$busqueda);

               $bucle_bc = count(explode(" ", $row['titulo']));
               $bucle_bcd = count(explode(" ", $busqueda));

  for ($bcd = 1; $bcd <= $bucle_bcd; $bcd++) {

       for ($bc = 1; $bc <= $bucle_bc; $bc++) {

           $m_bc = $bc -1;
           $m_bcd = $bcd -1;

        if($titulo[$m_bc] == $bqd[$m_bcd]){

            $suma = $suma + 1;

            $resp = $row['titulo']."<br>".$suma."<br></br>";

            if($suma == 1){

                $num_r = $num_r + 1;
            }

         }

       }

              }

                                              echo $resp;

                   }

               ?>

Si comparo resultados de esta manera, afectaría de alguna manera el rendimiento del buscador?

De no afectar me pregunto como podría agregar los datos de cada bucle en un solo array para luego ordenarlo de mayor a menor numero de coincidencias! Espero que puedan ayudarme

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola @jorge98,

la idea y la lógica del proceso están bien, pero salvo que siempre tengas en total unas pocas decenas de registros (o que sea un ejercicio para aprender), buscar de esta forma es impracticable pr el tiempo que lleva.

Suponete solo 2000 post con títulos de 4 palabras, y que la búsqueda sea de 2 palabras: hacen falta 16 mil iteraciones para terminar la búsqueda! Pero si buscan 3 palabras hacen falta 24 mil!

Recordá además que en entornos web los script abortan si no terminan en menos de 30 segundos.

Para hacer búsquedas, la base de datos es mucho más eficiente. Usando índices fulltext y haciendo las comparaciones con match-against se obtienen resultados de forma muy eficiente y rápida (y programando menos).

Hace poco el amigo @magarzon respondió de forma muy completa sobre este tema en esta pregunta.

Saludos cordiales

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta