Apuva arrayn:n. Nyt kun haen kannasta alku, loppu ja id:n arrayhin, ja sitten vertaan että "lukujärjestyksessä" oleva solun arvo on alku ja lopun välissä, jos näin on, niin silloin soluun tulostettaisiin id!
Ongelma on nyt sellanen että jos samaan soluun olisi tulossa useampi id, niin siihen tulostuu vain yksi!!! JOs joku voisi pientä vinkkiä laittaa...
<?php for($g=0; $g<5; $g++) { $seek_time = $g*24*60*60+$last_monday+($first_num*60*60+$last_num*60); //haetaan $a -> arrayn jossa alku, loppu ja id:t ja verrataan $seek_timeen joka on solun arvo lukujärjestyksessä. $s_result = search_between($seek_time, $a); if(!$s_result) // Jos tietoja ei löydetty, on solun sisältö tyhjä { $tulostus = " "; $not_found = false; } else // Tietoja löydetty, laitetaan sisältö muuttujaam... { $not_found = true; $tulostus = $s_result['id']; // Jos $cycle muuttujassa ei ole $g-päivän kohdalla enää varausta, ja varaus kestää 1 tunnin tai yli, niin asetetaan se läpikäytäväksi... } if($cycle[$g] == 0) // Jos ei sisältöä soluun, tulostetaan tyhjä solu { $contents .= " <td class=\"concell\">".$s_result['id']." </td>\n"; // Jatketaan vanhan solun piirtämistä tai luodaan uusi tyhjä solu } elseif($begin == 1) // Aloitetaan solu, ja kirjoitetaan siihen sisältö. { $contents .= " <td class=\"setcell\" rowspan=\"".$cycle[$g]."\">"; // Luodaan uusi solu, jolle annetaan rowspan (tunnit) if($not_found) // $contents .= $s_result['id']; $contents .= $tulostus."</td>\n"; $begin = 0; } if($cycle[$g] > 0) // Jos tieto on jo tulostettu soluun, niin odotetaan vielä varauksen loppuun ennen solun lopettamista { $cycle[$g]--; } ?>
en nyt tiedä ymmärsinkö oikein mutta jo sinulla on arrayssa arvoja niin joudut tulostamaan ne esim loopissa tyyliin:
ääh, ei oikein tajua tuota... Tuossa on aray minkä jo olen tehnyt, elikkä siinä haen kannasta tiedot tuohon array:'
Niin kuin tuossa yläpuolella on, niin tarkastan tuo id:n alku ja loppu aika jossakin lukujärjestyksen solussa, jos on, niin siihen tulostetaan ko. id.
Ongelmana nyt on se että vai olla useita id:tä joilla sama alku ja loppu aika, mutta lukujärjestykseen tulostuu vain yksi...
Miten tuo onnistuisi, jotta jos useampi id voisi tulostua...
Ongelma on ehkä siinä, miten haet tiedot kannasta. Voisit kuvailla kannan rakennetta ja sitä, millainen search_between-funktio on.
kannassa on taulu jossa id, alku, loppu ja tiedot. alku ja loppu tallennetaan kantaan muodossa DD.MM.YYYY hh24:mi.
<? Function search_between($val, $arr) { $rtn = false; foreach($arr as $array) { if($array['alku'] <= $val && $array['loppu'] > val) { $rtn = $array; break; } } return $rtn; } ?>
<? $sql ="SELECT id, to_char(alku_aika, 'hh24') as tunti, to_char(alku_aika, 'mi') as minute, to_char(alku_aika, 'ss') as sek, to_char(alku_aika, 'MM') as kuukausi, to_char(alku_aika, 'DD') as paiva, to_char(alku_aika, 'YYYY') as vuosi, to_char(loppu_aika, 'hh24') as tunti2, to_char(loppu_aika, 'mi') as minute2, to_char(loppu_aika, 'ss') as sek2, to_char(loppu_aika, 'MM') as kuukausi2, to_char(loppu_aika, 'DD') as paiva2, to_char(loppu_aika, 'YYYY') as vuosi2 FROM taulu"; $results = query($conn,$sql); while (OCIFetchInto($results, &$results_out, OCI_ASSOC)){ $a[] = array( 'alku' => (mktime($results_out["T"], $results_out["M"], $s, $results_out["K"], $results_out["P"], $results_out["V"])), 'loppu' => (mktime($results_out["T2"], $results_out["M2"], $s, $results_out["K2"], $results_out["P2"], $results_out["V2"])), 'id' => ($results_out['ID']) ); } ?>
php-kuninkaat... heittäkääs muutama kommentti miten saisin tuon toimimaan... vaikka joku esimerkki.
Aihe on jo aika vanha, joten et voi enää vastata siihen.