Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/07/2013, 22:53
Avatar de bowiecamaleon
bowiecamaleon
 
Fecha de Ingreso: mayo-2013
Ubicación: Mexico
Mensajes: 15
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Aporte- Busquedas en PHP & MySQL varios casos

Este archivo el usuario decide por que campos buscar en la base de datos, con checkbox

Código PHP:

<?php  

    
include('php/conexion.php'); 
    include(
'php/funciones.php'); 

    
//Evitamos injecciones SQL
    
$input_arr = array(); 
    foreach (
$_POST as $key => $input_arr
    { 
      
$_POST[$key] = addslashes(limpiarCadena($input_arr)); 
    }
     
    
$input_arr = array(); 
    foreach (
$_GET as $key => $input_arr
    { 
      
$_GET[$key] = addslashes(limpiarCadena($input_arr)); 
    }

    
//Creo un array que contendra los mensajes dependiendo el caso
    
$mensajes = array(  
            
0=>"<em>Lo sentimos tu busqueda no tuvo exito <br/> Tal vez fuiste mus especifico <br/> O usuaste Las palabras 'Clave equivocas'</em>",
            
1=>"<em>Tu busqueda tuvo exito</em>",);

    
//Asigno un valor NULL a las variables que en un futuro se ocuparan para no probocar un notice.
    
$msg="";



     if (isset(
$_POST['multi_btn'])) {  

        
$palabra_clave$_POST['clave_txt'];

        
        
//Variable titulo
        
$titulo  =      (!empty($_POST['campo_titulo'])
                        ?
$titulo "WHERE ".$_POST['campo_titulo']." LIKE '%".$palabra_clave."%'"
                        
"");

        
$autor =        (!empty($_POST['campo_autor'])
                        ?(!empty(
$titulo)
                        ?
$autor" OR ".$_POST['campo_autor']." LIKE '%".$palabra_clave."%'"
                        
:$autor"WHERE ".$_POST['campo_autor']." LIKE '%".$palabra_clave."%'")
                        :
"");

        
$publicacion =  (!empty($_POST['campo_publicacion'])
                        ? (!empty(
$titulo) || !empty($autor)
                        ?
$publicacion" OR ".$_POST['campo_publicacion']." LIKE '%".$palabra_clave."%'"
                        
:$publicacion"WHERE ".$_POST['campo_publicacion']." LIKE '%".$palabra_clave."%'")
                        :
"");

        
$pais =         (!empty($_POST['campo_pais'])
                        ? (!empty(
$titulo) || !empty($autor) || !empty($publicacion)
                        ?
$pais" OR ".$_POST['campo_pais']." LIKE '%".$palabra_clave."%'"
                        
:$pais"WHERE ".$_POST['campo_pais']." LIKE '%".$palabra_clave."%'")
                        :
"");

        
$idioma =       (!empty($_POST['campo_idioma'])
                        ? (!empty(
$titulo) || !empty($autor) || !empty($publicacion) || !empty($pais)
                        ?
$idioma" OR ".$_POST['campo_idioma']." LIKE '%".$palabra_clave."%'"
                        
:$idioma"WHERE ".$_POST['campo_idioma']." LIKE '%".$palabra_clave."%'")
                        :
"");

        
$criterio=$titulo.$autor.$publicacion.$pais.$idioma;
        


        
//Secsion SQL
        //"SELECT * FROM alumnos WHERE $campo1 LIKE '%".$palabra_clave."%' AND $campo2 LIKE '%".$palabra_clave."%'
        
$consulta "SELECT * FROM  libros_cien ".$criterio;
        
$ejecutar_consulta $conexion->query($consulta);
        
$numero $ejecutar_consulta->num_rows;
        
// No es necesario me poducia error $fila = $ejecutar_consulta->fetch_assoc(); 

            
if ($numero==0) {
              
$msg=$mensajes['0'];
              
            }else{
              
$correr="si";
              
$msg=$mensajes['1'];
            }

     }

?>




 
            <form id="multi-busqueda" name="multi_frm" action="multibusqueda.php" method="post" autocomplete="off" enctype="application/x-www-form-urlencoded">
                 
                <label for="clave">Palabra  clave: </label>
                <input type="text"   id="clave" name="clave_txt" placeholder="Inidica la palabra clave de busqueda" title="Palabra clave" required/>
                 
                <fieldset>
                  <legend>Elija los campos por los que desea buscar</legend>
                    <label for:"titulo">
                    <input type="checkbox" name="campo_titulo" value="titulo" id="titulo_chbox" <?php if(isset($_POST['campo_titulo'])){ echo "checked"; }?> > Titulo</label>
                     
                    <label for:"autor">
                    <input type="checkbox" name="campo_autor" value="autor" id="autor_chbox" <?php if(isset($_POST['campo_autor'])){ echo "checked"; }?> > Autor</label>

                    <label for:"publicacion">
                    <input type="checkbox" name="campo_publicacion" value="publicacion" id="publicacion_chbox" <?php if(isset($_POST['campo_publicacion'])){ echo "checked"; }?> > Publicacion</label>
                     
                    <label for:"pais">
                    <input type="checkbox" name="campo_pais" value="pais" id="pais_chbox" <?php if(isset($_POST['campo_pais'])){ echo "checked"; }?> > Pais</label>
                     
                    <label for:"idioma">
                    <input type="checkbox" name="campo_idioma" value="idioma"id="idioma_chbox" <?php if(isset($_POST['campo_idioma'])){ echo "checked"; }?> > Idioma</label>
                </fieldset>
                <br/>    
                <input type="submit" id="rango"  name="multi_btn" value="Buscar"/>
                
            </form>
            <?php echo $msg.'<br/>'?>
            <hr/>
            <?php

                  
if (isset($correr) && $correr=="si") { // Si encontraror algun libro


                        
echo "De tu busqueda encontramos ".$numero" libros. <br/>";
                                echo 
"<table width='100%'>";
                                echo  
"<tr>";
                                echo      
"<td>No.</td>";
                                echo      
"<td>Titulo</td>";
                                echo      
"<td>Autor</td>";
                                echo      
"<td>Publicacion</td>";
                                echo      
"<td>Pais</td>";
                                echo      
"<td>Idioma</td>";
                                echo  
"</tr>";
                          
                              while (
$fila $ejecutar_consulta->fetch_assoc())
                              {
                                      
$id=$fila['id'];  
                                      
$titulo=$fila['titulo'];
                                      
$autor=$fila['autor'];
                                      
$publicacion=$fila['publicacion'];
                                      
$pais=$fila['pais'];
                                      
$idioma=$fila['idioma'];
                                echo 
"<tr class='brillo'>";
                                echo    
"<td>".$id."</td>";
                                echo    
"<td>".$titulo."</td>";
                                echo    
"<td>".$autor."</td>";
                                echo    
"<td>".$publicacion."</td>";
                                echo    
"<td>".$pais."</td>";
                                echo    
"<td>".$idioma."</td>";
                                echo 
"</tr>";
                              };
                                echo 
"</table>";
                  }


            
?>
            </div>
      </article>
    </div>
</body>
</html>
<?php 
if (isset($ejecutar_consulta)) {$ejecutar_consulta->close();}
$conexion->close();
?>