Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/01/2017, 04:14
Avatar de blogger
blogger
 
Fecha de Ingreso: diciembre-2005
Ubicación: frente al monitor
Mensajes: 398
Antigüedad: 20 años, 10 meses
Puntos: 12
Respuesta: script de búsqueda, no se como obtener los valores

Esta es una pregunta muy recurrente, y para aquellos que tengan el deseo o la intención de implementar un buscador bíblico en su sitio, les informo que encontré la solución.

Tengo varias biblias en SQL y

Código PHP:
//Variable del URL
$quest=filter_var(($_GET['search']), FILTER_SANITIZE_STRING);

//Dividimos las referencias
$quest = preg_split('[,|;]', $quest);

print_r($quest);

// Iniciamos el blucle
foreach ($quest as $valor) {
    
    
// Separamos las referencias
    
$parts = preg_split('/\s*:\s*/', trim($valor));

    
// Preparamos el Array
    
$book = array('name' => "", 'chapter' => "", 'verses' => array());

    
// $part[0] = libro + capitulo, si isset $part[1] es versiculo
    
if(isset($parts[0]))
    {
        
// 1.) Capitulo
        
if(preg_match('/\d+\s*$/', $parts[0], $out)) {
            
$book['chapter'] = rtrim($out[0]);
        }

        
// 2.) Nombre del Libro
        
$x = trim(preg_replace('/\d+\s*$/', "", $parts[0]));
        
        
//Cuando no haya nombre del libro, usar nombre anterior 
        
if (empty($x)) {
            
$x = $t;
            
$book['name'] = $x;
        } else {
            
$book['name'] = $x;
            
$t = $x;
        }
    }

    
// 3.) Versiculos
    
if(isset($parts[1])) {
        
$book['verses'] = preg_split('~\s*,|-\s*~', $parts[1]);
    }
    
    
//Hacemos la consulta SQL
           
... 
El resultado es (Génesis 3:1-20; 2:3; 15; Juan 3:16, Mateo 3:20; Jueces 2:2, 3:20; 5; 1 juan 1:19):
Código PHP:
Array
(
    [
name] => Genesis
    
[chapter] => 2
    
[verses] => Array
        (
            [
0] => 3
        
)

)
Array
(
    [
name] => Genesis
    
[chapter] => 15
    
[verses] => Array
        (
        )

)
Array
(
    [
name] => Juan
    
[chapter] => 3
    
[verses] => Array
        (
            [
0] => 16
        
)

)
Array
(
    [
name] => Mateo
    
[chapter] => 3
    
[verses] => Array
        (
            [
0] => 20
        
)

)
Array
(
    [
name] => Jueces
    
[chapter] => 2
    
[verses] => Array
        (
            [
0] => 2
        
)

)
Array
(
    [
name] => Jueces
    
[chapter] => 3
    
[verses] => Array
        (
            [
0] => 20
        
)

)
Array
(
    [
name] => Jueces
    
[chapter] => 5
    
[verses] => Array
        (
        )

)
Array
(
    [
name] => 1 juan
    
[chapter] => 1
    
[verses] => Array
        (
            [
0] => 19
        
)

) 
__________________
http://exegesis-biblica.com/