选择'date1'和'date2'之间的mysql查询

时间:2016-11-07 23:51:00

标签: php mysql date

下午好,我有这个代码用date()查询以前用MySQL做的INSERT; (只是姓名,电子邮件,日期)但是,当我查询信息时,它不返回任何内容......

这是查询页面:

<?php 

$con = mysqli_connect("localhost", "root", "", "registro");

if (mysqli_connect_errno()) {
   echo "Error al conectar a la BD";
}

$fec1 = isset($_POST['fecha1']) ? $_POST['fecha1'] : NULL;
$fec2 = isset($_POST['fecha2']) ? $_POST['fecha2'] : NULL;
$nom = 'Nombre Completo';
$ema = 'Correo Electronico';
$fec = 'Fecha de Registro';

$result = mysqli_query($con, "select * from registro where date between '$fec1' and '$fec2'");

echo "<table border='1'>";
echo "<tr>";
echo "<th>".$nom."</th>";
echo "<th>".$ema."</th>";
echo "<th>".$fec."</th>";
echo "</tr>";

while ($row = mysqli_fetch_array($result)) {
  echo "<tr>";
  echo "<td>".$row['name']."</td>";
  echo "<td>".$row['email']."</td>";
  echo "<td>".$row['date']."</td>";
  echo "</tr>";
}

echo "</table>";

?>

这是主页面,它在MySQL上插入数据:

<?php

#error_reporting(0);

$sqlhost = 'localhost';  
$sqluser = 'root';       
$sqlpass = '';           
$sqldb   = 'registro';   
$sqltable= 'registro';

function captcha() {
  $k="";
  $param="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  $max=strlen($param)-1;

  for ($i=0; $i<6; $i++) { 
    $k.=$param{mt_rand(0,$max)};
  }
  return $k;
}

$db = mysqli_connect($sqlhost, $sqluser, $sqlpass, $sqldb); //Nuestra variable para establecer la conexión a la base de datos
if(!$db){die("Error al conectar con la db" . mysql_error());}

$name = isset($_POST['name']) ? $_POST['name'] : NULL; // Tomamos el texto del input "nombre"
$email = isset($_POST['email']) ? $_POST['email'] : NULL; // Tomamos el texto del input "apellido"
$date = date('Y-m-d');

// Insertaremos la información a la tabla Nombre y Apellido, donde VALUES declara el texto que ingresaremos
$query = "INSERT INTO ".$sqltable."(name, email, date) VALUES('".$name."', '".$email."', '".$date."');";

mysqli_select_db($db,$sqldb); //verificaremos la conexión a nuestra base de datos
$insert_value = mysqli_query($db, $query); // Declaramos la variable $insert_value para usarla cómo un bool, en caso de que esta consulta falle
    if(!$insert_value) //Crearemos la consulta
    die('Error: ' . mysqli_error($db)); // Si falla, nos mostrará este texto, seguido del error.

mysqli_close($db); // Detenemos la conexión de la base de datos

?>

$fec1$fec2变量来自php日历,当我使用它时,它使用以下格式:

Fecha inicio:  
1/11/2016
 Fecha final:  
7/11/2016

据我所知MySQL存储的日期类似'YYYY-mm-dd'我查看了日历代码,但我无法查询结果......

这是日历代码:

<?php
function calcula_numero_dia_semana($dia,$mes,$ano){
    $numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano));
    if ($numerodiasemana == 0) 
        $numerodiasemana = 6;
    else
        $numerodiasemana--;
    return $numerodiasemana;
}

//funcion que devuelve el último día de un mes y año dados
function ultimoDia($mes,$ano){ 
    $ultimo_dia=28; 
    while (checkdate($mes,$ultimo_dia + 1,$ano)){ 
       $ultimo_dia++; 
    } 
    return $ultimo_dia; 
} 

function dame_nombre_mes($mes){
     switch ($mes){
        case 1:
            $nombre_mes="Enero";
            break;
        case 2:
            $nombre_mes="Febrero";
            break;
        case 3:
            $nombre_mes="Marzo";
            break;
        case 4:
            $nombre_mes="Abril";
            break;
        case 5:
            $nombre_mes="Mayo";
            break;
        case 6:
            $nombre_mes="Junio";
            break;
        case 7:
            $nombre_mes="Julio";
            break;
        case 8:
            $nombre_mes="Agosto";
            break;
        case 9:
            $nombre_mes="Septiembre";
            break;
        case 10:
            $nombre_mes="Octubre";
            break;
        case 11:
            $nombre_mes="Noviembre";
            break;
        case 12:
            $nombre_mes="Diciembre";
            break;
    }
    return $nombre_mes;
}

function dame_estilo($dia_imprimir){
    global $mes,$ano,$dia_solo_hoy,$tiempo_actual;
    //dependiendo si el día es Hoy, Domigo o Cualquier otro, devuelvo un estilo
    if ($dia_solo_hoy == $dia_imprimir && $mes==date("n", $tiempo_actual) && $ano==date("Y", $tiempo_actual)){
        //si es hoy
        $estilo = " class='hoy'";
    }else{
        $fecha=mktime(12,0,0,$mes,$dia_imprimir,$ano);
        if (date("w",$fecha)==0){
            //si es domingo 
            $estilo = " class='domingo'";
        }else{
            //si es cualquier dia
            $estilo = " class='diario'";
        }
    }
    return $estilo;
}

function mostrar_calendario($mes,$ano){
    global $parametros_formulario;
    //tomo el nombre del mes que hay que imprimir
    $nombre_mes = dame_nombre_mes($mes);

    //construyo la tabla general
    echo '<table class="tablacalendario" cellspacing="3" cellpadding="2" border="0">';
    echo '<tr><td colspan="7" class="tit">';
    //tabla para mostrar el mes el año y los controles para pasar al mes anterior y siguiente
    echo '<table width="100%" cellspacing="2" cellpadding="2" border="0"><tr><td class="messiguiente">';
    //calculo el mes y ano del mes anterior
    $mes_anterior = $mes - 1;
    $ano_anterior = $ano;
    if ($mes_anterior==0){
        $ano_anterior--;
        $mes_anterior=12;
    }
    echo "<a href='index.php?$parametros_formulario&nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior'><span>&lt;&lt;</span></a></td>";
    echo "<td class='titmesano'>$nombre_mes $ano</td>";
    echo "<td class='mesanterior'>";
    //calculo el mes y ano del mes siguiente
    $mes_siguiente = $mes + 1;
    $ano_siguiente = $ano;
    if ($mes_siguiente==13){
        $ano_siguiente++;
        $mes_siguiente=1;
    }
    echo "<a href='index.php?$parametros_formulario&nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente'><span>&gt;&gt;</span></a></td></tr></table></td></tr>";
    echo '  <tr>
                <td width="14%" class="diasemana">L</td>
                <td width="14%" class="diasemana">M</td>
                <td width="14%" class="diasemana">X</td>
                <td width="14%" class="diasemana">J</td>
                <td width="14%" class="diasemana">V</td>
                <td width="14%" class="diasemana">S</td>
                <td width="14%" class="diasemana">D</td>
            </tr>';

    //Variable para llevar la cuenta del dia actual
    $dia_actual = 1;

    //calculo el numero del dia de la semana del primer dia
    $numero_dia = calcula_numero_dia_semana(1,$mes,$ano);
    //echo "Numero del dia de demana del primer: $numero_dia <br>";

    //calculo el último dia del mes
    $ultimo_dia = ultimoDia($mes,$ano);

    //escribo la primera fila de la semana
    echo "<tr>";
    for ($i=0;$i<7;$i++){
        if ($i < $numero_dia){
            //si el dia de la semana i es menor que el numero del primer dia de la semana no pongo nada en la celda
            echo '<td class="diainvalido"><span></span></td>';
        } else {
            echo "<td " . dame_estilo($dia_actual) . "><span><a href='javascript:devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a></span></td>";
            $dia_actual++;
        }
    }
    echo "</tr>";

    //recorro todos los demás días hasta el final del mes
    $numero_dia = 0;
    while ($dia_actual <= $ultimo_dia){
        //si estamos a principio de la semana escribo el <TR>
        if ($numero_dia == 0)
            echo "<tr>";
        echo "<td " . dame_estilo($dia_actual) . "><span><a href='javascript:devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a></span></td>";
        $dia_actual++;
        $numero_dia++;
        //si es el uñtimo de la semana, me pongo al principio de la semana y escribo el </tr>
        if ($numero_dia == 7){
            $numero_dia = 0;
            echo "</tr>";
        }
    }

    //compruebo que celdas me faltan por escribir vacias de la última semana del mes
    if ($numero_dia != 0){
        for ($i=$numero_dia;$i<7;$i++){
            echo '<td class="diainvalido"><span></span></td>';
        }
    }

    echo "</tr>";
    echo "</table>";
}   

function formularioCalendario($mes,$ano){
    global $parametros_formulario;
echo '
    <br><form action="index.php?' . $parametros_formulario . '" method="POST">
    <table align="center" cellspacing="2" cellpadding="2" border="0" class=tform>
    <tr>';
echo '
    <td align="center" valign="top">
        Mes: <br>
        <select name=nuevo_mes>
        <option value="1"';
if ($mes==1)
 echo "selected";
echo'>Enero
        <option value="2" ';
if ($mes==2) 
    echo "selected";
echo'>Febrero
        <option value="3" ';
if ($mes==3) 
    echo "selected";
echo'>Marzo
        <option value="4" ';
if ($mes==4) 
    echo "selected";
echo '>Abril
        <option value="5" ';
if ($mes==5) 
        echo "selected";
echo '>Mayo
        <option value="6" ';
if ($mes==6) 
    echo "selected";
echo '>Junio
        <option value="7" ';
if ($mes==7) 
    echo "selected";
echo '>Julio
        <option value="8" ';
if ($mes==8) 
    echo "selected";
echo '>Agosto
        <option value="9" ';
if ($mes==9) 
    echo "selected";
echo '>Septiembre
        <option value="10" ';
if ($mes==10) 
    echo "selected";
echo '>Octubre
        <option value="11" ';
if ($mes==11) 
    echo "selected";
echo '>Noviembre
        <option value="12" ';
if ($mes==12) 
    echo "selected";
echo '>Diciembre
        </select>
        </td>';
echo '      
        <td align="center" valign="top">
        A&ntilde;o: <br>
        <select name=nuevo_ano>';

//este bucle se podría hacer dependiendo del número de año que se quiera mostrar
//yo voy a mostar 10 años atrás y 10 adelante de la fecha mostrada en el calendario
for ($anoactual=$ano-10; $anoactual<=$ano+10; $anoactual++){
    echo '<option value="' . $anoactual . '" ';
    if ($ano==$anoactual) {
        echo "selected";
    }
    echo '>' . $anoactual . '</option>';
}
echo '
    </select>
        </td>';
echo '
    </tr>
    <tr>
        <td colspan="2" align="center"><input type="Submit" value="[ IR A ESE MES ]"></td>
    </tr>
    </table><br>

    <br>

    </form>';
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Función que escribe en la página un fomrulario preparado para introducir una fecha y enlazado con el calendario para seleccionarla comodamente
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function escribe_formulario_fecha_vacio($nombrecampo,$nombreformulario){
    //Esa variable $raiz sirve para cuando se llama al calendario desde otra ruta, para poder acceder a él
    global $raiz; //empieza en . termina en /
    echo '
    <INPUT name="'.$nombrecampo.'" size="10" class="inputfecha" onclick="muestraCalendario(\''. $raiz.'\',\''. $nombreformulario .'\',\''.$nombrecampo.'\')" onfocus="blur()">
    </div>
    ';  
}
?>

我感谢任何帮助和努力

0 个答案:

没有答案