miércoles, 21 de diciembre de 2016

Tildes de PHP a MYSQL



Cuando intentas enviar datos desde un formulario a PHP y luego a MYSQL, puede ocurrir que las tildes aparezcan en la base de datos como símbolos raros.

Para superar eso prueba cambiando la cabecera del HTML del formulario que manda los datos a:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Y luego codifica el HTML del formulario (por ejemplo, en el editor Notepad++) como:
ANSI.

Si no funciona, lee este otro post que puse sobre este tema. Sobre todo revisa los comentarios, dónde agregué varias pruebas que hice.

lunes, 19 de diciembre de 2016

Buscar con PHP fecha en un rango o "between"



Perdí un par de horas en esto :(

Comparar fechas es distinto comparar cadenas de texto.
Es decir no se puede decir:

if ("2016-12-24" == $hoy){echo "La fecha es la misma";)

Se tienen, primero, que convertir las fechas a fechas Unix.
Para eso se usa la función: strtotime

Bueno, alguien amablemente ya hizo una función para eso, que es parecida a between en mysql, y aquí se las pego:

function check_in_range($start_date, $end_date, $date_from_user)
{
  // Convert to timestamp
  $start_ts = strtotime($start_date);
  $end_ts = strtotime($end_date);
  $user_ts = strtotime($date_from_user);

  // Check that user date is between start & end
  return (($user_ts >= $start_ts) && ($user_ts <= $end_ts));
}

Se usa así:

$encontro_la_fecha = check_in_range($fecha_llegada, $fecha_salida, $fechapasando);
if($encontro_la_fecha)
{
echo "Encontró la fecha en el rango buscado";
}
else
{
echo "NO encontró la fecha en el rango buscado";
}

Convertir consulta MYSQL en array PHP (arreglo php)


A veces puedes querer pasar una consulta mysql a un array de PHP (arreglo php), para procesarla luego con php y no volver a hacer consultas a la base de datos.

Esto te puede servir:

### PEDIMOS LOS DATOS VÍA MYSQL
$sql_resultado = mysql_query($sql);


### PASANDO EL RESULTADO A UN ARRAY
while( $fila = mysql_fetch_assoc( $sql_resultado )){
    $nuevo_array[] = $fila;
}

### IMPRIMIENDO EL ARRAY Y TODOS SUS VALORES
echo '<pre>';
print_r($nuevo_array);
echo  '</pre>';

### RECORRIENDO EL ARRAY
foreach($nuevo_array as $fila)
{
echo "Los datos del registro son: ";
foreach($fila as $columna)
{
echo $columna ." ";
}
echo "<br>";
}

### BUSCANDO DENTRO DEL ARRAY
$encontrados = array();
$palabra_a_buscar = "2016-12-28";
foreach($nuevo_array as $clave=>$valor){
$indice = array_search($palabra_a_buscar,$valor);
if($indice){
$encontrados[]=$valor;
}
}

### IMPRIMIENDO LO ENCONTRADO QUE AHORA TAMBIÉN ESTÁ EN UN ARRAY
echo '<pre>';
print_r($encontrados);
echo  '</pre>';

:)


chaveztoro