He adaptado tu query a mi conexión porque he intentado conectar a tu manera y parece ser que mi servidor no acepta, puede que sea por la clase mysqli.
Ahora, solo me deja introducir dos asientos, uno con la casa_1 y otro con la csa_2, creo que hemos limitado las casas y no las casas con respecto a las fechas.
Tipo casa | Entrada | Salida
Casa-1 09-03-2014 12-03-2014
Casa-2 09-03-2014 12-03-2014
Lo que intento es poder reservar las mismas casas con otra fecha y si alguien intentara reservar en la fecha ya reservada que salga un aviso diciendo que la casa tal con la fecha tal no está disponible.
Te muestro los tres archivos php:
Para insertar los datos, insertar.php
Código HTML:
</head>
<body>
<H1 class="ENCABEZADOS_DE_TEXTOS">Ejemplo:Iimpedir datos duplicados entre dos fechas con PHP y MySQL</H1>
<FORM ACTION="procesar.php" name="contacto" onSubmit="return formulariodecontacto()">
<TABLE>
<TR>
<TD><span class="TEXTOS">Tipo de Casa:</span>:</TD>
<TD> <select name="tipo_casa" id="tipo_casa" width="150px">
<option>Casa-1</option>
<option>Casa-2</option>
</select>
</TD>
</TR>
<TR>
<TD class="TEXTOS">Entrada:</TD>
<TD><INPUT TYPE="text" NAME="dia_entrada" id="dia_entrada" readonly SIZE="20" MAXLENGTH="30"></TD>
</TR>
<TR>
<TD><span class="TEXTOS">Salida:</span>:</TD>
<TD><INPUT TYPE="text" NAME="dia_salida" id="dia_salida" readonly SIZE="20" MAXLENGTH="30"></TD>
</TR>
</TABLE>
<INPUT TYPE="submit" NAME="accion" VALUE="Grabar">
</FORM>
<hr>
Código PHP:
<?php
include("conex.php");
$link=Conectarse();
$result=mysql_query("select * from disponibilidad",$link);
?>
Código HTML:
<table width="250" height="30" text-align="center" border=1 cellpadding=1 cellspacing=1 bordercolor="#999999" bgcolor="#E8E8E8">
<tr>
<td width="80"><b class="ENCABEZADOS_DE_TEXTOS">Tipo casa</b></td>
<td width="80"><b class="ENCABEZADOS_DE_TEXTOS">Entrada</b></td>
<td width="80"><b class="ENCABEZADOS_DE_TEXTOS">Salida</b> </td>
</tr>
Código PHP:
<?php
while($row = mysql_fetch_array($result)) {
printf("<tr class=Estilo1 ><td > %s</td> <td > %s </td> <td > %s </td></tr>",$row['tipo_casa'], $dia_entrada=date('d-m-Y',strtotime($row['dia_entrada'])), $dia_salida=date('d-m-Y',strtotime($row['dia_salida'])));
}
mysql_free_result($result);
mysql_close($link);
?>
Código HTML:
</table>
</body>
</html>
Para procesar los datos, procesar.php
Código PHP:
<?php
include("conex.php");
$link=Conectarse();
$dia_entrada=$_GET['dia_entrada'];
$dia_salida=$_GET['dia_salida'];
$tipo_casa=$_GET['tipo_casa'];
$buscar= mysql_query("SELECT * FROM disponibilidad WHERE tipo_casa AND ('$dia_entrada' BETWEEN dia_entrada AND dia_salida OR '$dia_salida' BETWEEN dia_entrada AND dia_salida OR (dia_entrada <= '$dia_entrada' AND dia_salida >= '$dia_salida'))");
// -----------------------------------------------------------------------------------
if(mysql_num_rows($buscar)>0) {
echo "Esta fecha no esta disponible. Por favor elija otra.<br>";
echo "<a href=\"javascript:history.back()\">Regresar</a>";
} else {
mysql_query("INSERT INTO disponibilidad(tipo_casa, dia_entrada, dia_salida) VALUES ('$tipo_casa', '$dia_entrada', '$dia_salida')");
echo "Registro correcto.<br>";
echo "<a href=\"http://www.dikindavi.byethost3.com/pruebas/calendar/insertar.php\">Regresar</a>";
}
?>
Y para conectarse a la DB, conex.php
Código PHP:
<?php
function Conectarse()
{
if (!($link=mysql_connect("sql311.byethost3.com","usuario","password")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("basedatos",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
?>