Witam, przedstawi? najpierw kod, potem mój problem:
<?php
$day = $_GET['day'];
$mouth = $_GET['mouth'];
$year = $_GET['year'];
if($mouth > (date("n")+3)){
if($year == date("Y")){
header("Location: day.php?day=".date("d")."&mouth=".date("n")."&year=".date("Y"));
}
}
function miesiac_pl($mies) {
$mies_pl = array(1=>"Stycznia", "Lutego", "Marzec", "Kwietnia", "Maja", "Czerwieca", "Lipieca", "Sierpnia", "Wrze¶nia", "Pa?dziernika", "Listopada", "Grudnia");
return $mies_pl[$mies];
}
function dni_mies($mies,$rok) {
if (checkdate($mies, 31, $rok)){
$dni = 31;
}elseif (checkdate($mies, 30, $rok)){
$dni = 30;
}elseif (checkdate($mies, 29, $rok)){
$dni = 29;
}elseif (checkdate($mies, 28, $rok)){
$dni = 28;
}
return $dni;
}
function gen_link($dir){
global $day, $mouth, $year;
$d = $day;
$m = $mouth;
$y = $year;
if($dir == "back"){
if($day-1 == 0){
if($mouth == 1){
$d = dni_mies(12, $y-1);
$m = 12;
$y--;
}else{
$d = dni_mies($m, $y);
$m--;
}
}else{
$d--;
}
$link = "<a href='day.php?day=$d&mouth=$m&year=$y'>poprzedni dzie?</a>";
}elseif($dir == "next"){
$dni = dni_mies($mouth, $year);
if($mouth > date("n")+3 && $year == date("Y")){
$link = "nast?pny dzie?";
}elseif($mouth == date("n")+3 && $year == date("Y")){
if($day+1 > $dni){
$link = "nast?pny dzie?";
}else{
$link = "<a href='day.php?day=".($day+1)."&mouth=$mouth&year=$year'>nast?pny dzie?</a>";
}
}else{
$dni = dni_mies($mouth, $year);
if($day+1 > $dni){
$d = 1;
if($mouth+1 > 12){
$m = 1;
$y++;
}else{
$m++;
}
}else{
$d++;
}
$link = "<a href='day.php?day=$d&mouth=$m&year=$y'>nast?pny dzie?</a>";
}
}
return $link;
}
?>
<html>
<head>
<meta http-equiv="content-type" content="text/xml; charset=utf-8" />
<meta http-equiv="content-language" content="pl" />
<style>
.prev{
background: #ccc;
border-bottom: 2px solid #000;
border-left: 2px solid #000;
border-top: 2px solid #000;
border-right: 1px solid #000;
float: left;
width: 150px;
}
.next{
background: #ccc;
border-bottom: 2px solid #000;
border-left: 1px solid #000;
border-top: 2px solid #000;
border-right: 2px solid #000;
float: left;
width: 150px;
}
.day{
background: #ffe4a4;
border-bottom: 2px solid #000;
border-top: 2px solid #000;
border-right: 1px solid #000;
border-left: 2px solid #000;
float: left;
width: 150px;
}
.tee{
width: 200px;
border: 1px solid #000;
}
.hour{
width: 50px;
background: #ffe4a4;
border: 1px solid #000;
}
.block{
background: #990000;
}
.hour_block{
width: 50px;
background: #990000;
border: 1px solid #000;
}
.hours_hide{
display: none;
}
.hours_show{
display: block;
}
.select_hide{
position: absolute;
width: 70px;
background: #ffe4a4;
border: 1px solid #000;
margin: -20px 0 0 50px;
display: none;
}
.select_show{
position: absolute;
width: 70px;
background: #ffe4a4;
border: 1px solid #000;
margin: -20px 0 0 50px;
display: block;
}
.sector{
float:left;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
function show(){
if($("div#hours1").hasClass("hours_hide")){
$("div#hours1").show("slow");
$('div#hours1').removeClass('hours_hide');
$('div#hours1').addClass('hours_show');
}else{
$("div#hours1").hide("slow");
$('div#hours1').removeClass('hours_show');
$('div#hours1').addClass('hours_hide');
}
}
function show2(id){
if($("div#"+id).hasClass("hour_block")){}else{
if($("div#"+id+"_child").hasClass("select_hide")){
$("div#"+id+"_child").show("slow");
$("div#"+id+"_child").removeClass('select_hide');
$("div#"+id+"_child").addClass('select_show');
}else{
$("div#"+id+"_child").hide("slow");
$("div#"+id+"_child").removeClass('select_show');
$("div#"+id+"_child").addClass('select_hide');
}
}
}
function show3(){
if($("div#hours2").hasClass("hours_hide")){
$("div#hours2").show("slow");
$('div#hours2').removeClass('hours_hide');
$('div#hours2').addClass('hours_show');
}else{
$("div#hours2").hide("slow");
$('div#hours2').removeClass('hours_show');
$('div#hours2').addClass('hours_hide');
}
}
function getIdElement(element){
i=$(element).attr("id");
return i;
}
</script>
</head>
<body>
<div class="prev"><?=gen_link("back");?></div>
<div class="day"><?=$day;?> <?=miesiac_pl($mouth);?></div>
<div class="next"><?=gen_link("next");?></div>
<br/><br/>
<div class="sector">
<div class="tee" id="tee1" onclick="show();">Tee1</div>
<div class="hours_hide" id="hours1">
<?
$
$i = 46;
$m = 0;
$h = 8;
while($i < 92){
$cell_color = ($m % 60 == 0 ? $h++ : NULL);
if($h == 9)$addzero = 0;else $addzero = NULL;
if($m == 0)$addzero2 = 0;else $addzero2 = NULL;
?>
<div class="hour" onclick="show2(getIdElement(this));" id="<?=$i;?>">
<?
echo $addzero.$h.":".$addzero2.$m;
?><div class="select_hide" id="<?=$i;?>_child">klubowicz<br/>go??</div>
</div>
<?
$m = $m+10;
if($m == 60){
$m = 0;
}
$i++;
}
?>
<div class="hour">09:00</div>
<div class="hour block" id="100" onclick="show2(getIdElement(this));">09:10 <div class="select_hide" id="100_child">klubowicz<br/>go??</div></div>
<div class="hour">09:20</div>
<div class="hour">09:30</div>
</div>
</div>
<div class="sector">
<div class="tee" id="tee2" onclick="show3();">Tee10</div>
<div class="hours_hide" id="hours2">
<?
$i = 0;
$m = 0;
$h = 8;
while($i < 46){
$cell_color = ($m % 60 == 0 ? $h++ : NULL);
if($h == 9)$addzero = 0;else $addzero = NULL;
if($m == 0)$addzero2 = 0;else $addzero2 = NULL;
?>
<div class="hour" onclick="show2(getIdElement(this));" id="<?=$i;?>">
<?
echo $addzero.$h.":".$addzero2.$m;
?><div class="select_hide" id="<?=$i;?>_child">klubowicz<br/>go??</div>
</div>
<?
$m = $m+10;
if($m == 60){
$m = 0;
}
$i++;
}
?>
<div class="hour">09:00</div>
<div class="hour block" id="100" onclick="show2(getIdElement(this));">09:10 <div class="select_hide" id="100_child">klubowicz<br/>go??</div></div>
<div class="hour">09:20</div>
<div class="hour">09:30</div>
</div>
</div>
</body>
</html>
A problem jest taki, ?e mam w bazie zrobion? tabel? tak, ?e pobiera mi w taki sposób dane:
$array['zamow_id][0]=1;
$array['zamow_data][0]="4-4-2012";
$array['zamow_czas][0]="16:30";
$array['zamow_id][1]=2;
$array['zamow_data][1]="4-4-2012";
$array['zamow_czas][1]="16:30";
I chc? w p?tli sprawdza?, czy na dan? godzin? jest wpisany rekord w bazie. Oczywi?cie, na pierwsz? my?l by?o wrzucenie zapytania do p?tli, ale je?li to zrobi? b?d? musia? zap?tli? 92 zapytania do bazy co za tym idzie, cz?sto b?dzie wywala? "over". Jak zoptymalizowa? kod, ?eby wykona? 1 zapytanie a sprawdza? czy jest odpowiednik w bazie? S?ysza?em o przeszukiwaniu tablicy wielowymiarowej poprzez jakie? funkcje ale nie wiem jak to si? robi.
PW od moderatora:
- Od?wie?enie tematu - Pieka 13.04.2012 20:12
|