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

Buenas noches mis estimados programadores, llevo pocos dias en este foro como miembro pero he aprendido mucho en el, quisiera hacer un pequeño aporte, de busquedas que se puede implementar a los proyectos, si alguien nota algun error o una sugerencia...

Primero empezare con la base de datos, tome los datos de un articulo de wikipedia de los 100 mejores libros de la historia, solo pondre los primeros 10 para no sea largo:

Código:
CREATE DATABASE pruebas_libros DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;

USE pruebas_libros;

CREATE TABLE IF NOT EXISTS `libros_cien` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'clave primaria ',
  `titulo` varchar(60) COLLATE utf8_spanish_ci DEFAULT NULL COMMENT 'Titulo del libro',
  `autor` varchar(40) COLLATE utf8_spanish_ci DEFAULT NULL COMMENT 'Autor del libro',
  `publicacion` varchar(20) COLLATE utf8_spanish_ci DEFAULT NULL COMMENT 'Fecha de publicacion',
  `pais` varchar(40) COLLATE utf8_spanish_ci DEFAULT NULL COMMENT 'Pais de origen',
  `idioma` varchar(20) COLLATE utf8_spanish_ci DEFAULT NULL COMMENT 'Idioma en el que se escribio',
  `imagen` varchar(60) COLLATE utf8_spanish_ci DEFAULT NULL COMMENT 'Imagen del libro guardada en el servidor',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci COMMENT='Tabla para ejercicios 100 mejores libros' AUTO_INCREMENT=101 ;

INSERT INTO `libros_cien` (`id`, `titulo`, `autor`, `publicacion`, `pais`, `idioma`, `imagen`) VALUES
(1, 'Poema de Gilgamesh', 'Anónimo', 'Siglo XVII a. C.', 'Sumeria*e*Imperio acadio', 'Acadio', '''img/fotos/Libro.png'''),
(2, 'Libro de Job*(de la*Biblia)', 'Anónimo', 'Siglo*VI a. C.*-*IV ', 'Imperio aqueménida', 'Hebreo', '''img/fotos/Libro.png'''),
(3, 'Las mil y una noches', 'Anónimo', '700–1500', 'Egipto', 'Árabe', '''img/fotos/Libro.png'''),
(4, 'Saga de Njál', 'Anónimo', 'Siglo XIII', 'Islandia', 'Nórdico antiguo', '''img/fotos/Libro.png'''),
(5, 'Todo se desmorona', 'Chinua Achebe', '1958', 'Nigeria', 'Inglés', '''img/fotos/Libro.png'''),
(6, 'Cuentos infantiles', 'Hans Christian Andersen', '1835–37', 'Dinamarca', 'Danés', '''img/fotos/Libro.png'''),
(7, 'Divina Comedia', 'Dante Alighieri', '1265–1321', 'Florencia', 'Italiano', '''img/fotos/Libro.png'''),
(8, 'Orgullo y prejuicio', 'Jane Austen', '1813', 'Reino Unido', 'Inglés', '''img/fotos/Libro.png'''),
(9, 'Papá Goriot', 'Honoré de Balzac', '1835', 'Francia', 'Francés', '''img/fotos/Libro.png'''),
(10, 'Molloy', 'Samuel Beckett', '1951–53', 'Irlanda', 'Francés', '''img/fotos/Libro.png''');
Ahora el archivo de conexion.

Código PHP:
<?php 
function conectarse()
{
    
$Servidor 'localhost';        // Detalles de la conexión de base de datos - Host
    
$Usuario 'root';                // Detalles de la conexión de base de datos - Username
    
$Password '';                    // Detalles de la conexión de base de datos - Password
    
$Basedatos 'pruebas_libros';    // Detalles de la conexión de base de datos - Database Name

    
$conectar= new mysqli($Servidor,$Usuario,$Password,$Basedatos);// Conexion a la base de datos
    
    
@mysql_query("SET NAMES 'utf8',conectar");
    
            if (
mysqli_connect_errno()) {
            echo 
"Error en conexion: "mysqli_connect_error();
            exit();
            }
            
    return 
$conectar;


}

$conexion conectarse();
$caracteres $conexion->set_charset('utf8');
$charset $conexion->client_encoding();


date_default_timezone_set('America/Mexico_City');// Formateamos la zona horaria
header('Content-Type: text/html; charset=UTF-8');//Configuramos los carateres especiales del idioma español    
?>
Algunas funciones que use funciones.php

[PHP]
<?php
/* ==================================================
Documneto con coleccion de funciones

1.- limpiarCadena: Sirve para evitar las inyecciones SQL
2.- fecha_hoy: Sirve para imprimir la fecha de hoy en formato de texto

================================================== */


/* #1.- limpiarCadena
================================================== */

function limpiarCadena($valor)
{
$valor = str_ireplace("SELECT","",$valor);
$valor = str_ireplace("COPY","",$valor);
$valor = str_ireplace("DELETE","",$valor);
$valor = str_ireplace("DROP","",$valor);
$valor = str_ireplace("DUMP","",$valor);
$valor = str_ireplace(" OR ","",$valor);
$valor = str_ireplace("%","",$valor);
$valor = str_ireplace("LIKE","",$valor);
$valor = str_ireplace("--","",$valor);
$valor = str_ireplace("^","",$valor);
$valor = str_ireplace("[","",$valor);
$valor = str_ireplace("]","",$valor);
$valor = str_ireplace("\\","",$valor);
$valor = str_ireplace("!","",$valor);
$valor = str_ireplace("¡","",$valor);
$valor = str_ireplace("?","",$valor);
$valor = str_ireplace("=","",$valor);
$valor = str_ireplace("&","",$valor);
return $valor;
}

/* #2.- fecha_hoy
================================================== */
function fecha_hoy() {
$fecha = date("Y/m/d/w");
$trozos = explode("/", $fecha);
switch($trozos[1]) {
case "01": $mes="Enero"; break;
case "02": $mes="Febrero"; break;
case "03": $mes="Marzo"; break;
case "04": $mes="Abril"; break;
case "05": $mes="Mayo"; break;
case "06": $mes="Junio"; break;
case "07": $mes="Julio"; break;
case "08": $mes="Agosto"; break;
case "09": $mes="Septiembre"; break;
case "10": $mes="Octubre"; break;
case "11": $mes="Noviembre"; break;
case "12": $mes="Diciembre"; break;
}

switch($trozos[2]) {
case "01": $dia="1°"; break;
case "02": $dia="2"; break;
case "03": $dia="3"; break;
case "04": $dia="4"; break;
case "05": $dia="5"; break;
case "06": $dia="6"; break;
case "07": $dia="7"; break;
case "08": $dia="8"; break;
case "09": $dia="9"; break;
default : $dia=$trozos[2];
}

switch($trozos[3]) {
case 0: $dia2="Domingo"; break;
case 1: $dia2="Lunes"; break;
case 2: $dia2="Martes"; break;
case 3: $dia2="Miércoles"; break;
case 4: $dia2="Jueves"; break;
case 5: $dia2="Viernes"; break;
case 6: $dia2="Sábado"; break;
}

return $dia2.", ".$dia." de ".$mes." del ".$trozos[0].".";

}
?>