Z plików csv pobierane są dane dobazy danych które mają byc wyświetlone na stronie. strona wygląda tak że wcodze sobie np w biuro wezyr i tam mamm mini wyszukiwarke i okno w wynikami niesety wyszukiwarka nie chce wyszukiwac mi według regionów. Oto kod 2 głównych plików plik wezyr.php :
[php]
<?php
require_once('UniversalCSV.php');
function odkodujIATA($napis) {
$kody = array (
'WAW' => 'Warszawa',
'KRK' => 'Kraków',
'KTW' => 'Katowice',
'GDN' => 'Gdańsk',
'WRO' => 'Wrocław',
'POZ' => 'Poznań',
'RZE' => 'Rzeszów',
'LCJ' => 'Łód»',
'SZZ' => 'Szczecin',
'BZG' => 'Bydgoszcz',
'IEG' => 'Zielona Góra',
'SZY' => 'Szczytno');
while(list($klucz, $wartosc) = each($kody)) {
$napis = str_replace($klucz, $wartosc, $napis);
}
return $napis;
}
class Biuro extends UniversalCSV {
private $poleMiejsca;
private $poleWylotu;
private $poleKraju;
private $poleRegionu;
private $dataWylotu;
public function setPoleMiejsca($indeks) {
$this->poleMiejsca=$indeks;
}
public function setPoleWylotu($indeks) {
$this->poleWylotu=$indeks;
}
public function setPoleKraju($indeks) {
$this->poleKraju=$indeks;
}
public function setPoleRegionu($indeks) {
$this->poleRegionu=$indeks;
}
public function setPoleDaty($indeks) {
$this->dataWylotu=$indeks;
}
public function getMiejsca() {
return $this->wartosciPola($this->poleMiejsca);
}
public function getWyloty() {
return $this->wartosciPola($this->poleWylotu);
}
public function getKraje() {
return $this->wartosciPola($this->poleKraju);
}
public function getRegiony() {
return $this->wartosciPola($this->poleRegionu);
}
public function getDaty() {
return $this->wartosciPola($this->dataWylotu);
}
public function wypiszSiebie($tablica) {
//nie ma implementacji
//w kazdej klasie dziedziczacej z tego trzeba
//napisac wlasna funkcje wyswietlajaca
}
public function szukajWycieczki($kraj,$region, $data_od, $data_do, $wylot_z) {
$warunki = array();
$porzadek = array();
if(isset($this->poleKraju)) {
$warunki[$this->poleKraju] = $kraj;
if($kraj != "")
array_push($porzadek, "pole".$this->poleKraju);
}
if(isset($this->poleRegionu)) {
$warunki[$this->poleRegionu] = $region;
if($region != "")
array_push($porzadek, "pole".$this->poleRegionu);
}
if(isset($this->dataWylotu)) {
$warunki[$this->dataWylotu] = array($data_od, $data_do);
if(($data_od != "") || ($data_do != "") )
array_push($porzadek, "pole".$this->dataWylotu);
}
if(isset($this->poleWylotu))
$warunki[$this->poleWylotu] = $wylot_z;
if(count($porzadek) > 0)
$porzadek =" ORDER BY ".implode(",", $porzadek);
else
$porzadek = "";
return $this->search($warunki, $porzadek."");
}
}
class Wezyr extends Biuro {
function __construct() {
parent::__construct(Array("Kod hotelu",//0
"Nazwa hotelu",//1
"Kategoria hotelu",//2
"Nazwa Regionu",//3
"Data wylotu",//4
"Miejsce wylotu",//5
"Lotnisko docelowe",//6
"Długość pobytu",//7
"Wyżywienie",//8
"Cena",//9
"Typ pokoju",//10
"Typ oferty"), ",", "Wezyr");
$this->setPoleRegionu(3);
$this->setPoleWylotu(5);
//z tego co widzialem to kraj to turcja
$this->setPoleDaty(4);
}
public function getKraje() {
return Array("Turcja");
}
public function szukajWycieczki($kraj,$region, $data_od, $data_do, $wylot_z) {
if(stripos($region,"") === false || $region == "")
return array();
return parent::szukajWycieczki($kraj,$region, $data_od, $data_do, $wylot_z);
}
public function getWyloty() {
$miejsca=parent::getWyloty();
$res = array();
for($i=0; $i<count($miejsca); $i++) {
$temp=explode(" ", $miejsca[$i]);
for($j=0; $j<count($temp); $j++)
array_push($res, $temp[$j]);
}
return array_unique($res);
}
public function wypiszSiebie($tablica) {
//wypisuje oferte biura wezyr
//pamietaj ze pierwszy jest zawsze ID
echo "\n<table>";
echo "<tr><td><font color='#3221b6'><b>Turcja</b></font></td><td><font color='#3221b6'><b>Region:</b></font> <font color='#ff9900'>".$tablica[4]."</font></td></tr>";
echo "<tr><td><font color='#3221b6'>Hotel: </font><font color='#ff9900'>".$tablica[2]."</font></td></tr>";
echo "<tr><td><font color='#3221b6'>Wylot w dniu:</font><font color='#ff9900'>".$tablica[5]."</font></td><td><font color='#3221b6'>Cena: </font><font color='#ff9900'><b>".$tablica[10]."</b></font></td></tr>";
echo "<tr><td><font color='#3221b6'>Wylot z:</font><font color='#ff9900'> ".odkodujIATA($tablica[6])."</font></td></tr>";
echo "<tr><td><font color='#3221b6'>Długość pobytu:</font><font color='#ff9900'> ".$tablica[8]." dni</font></td><td><font color='#3221b6'>Wyżywienie: </font><font color='#ff9900'>".$tablica[9]."</font></td></tr>";
echo "<tr><td><font color='#3221b6'>Typ pokoju: </font><font color='#ff9900'>".$tablica[11]."</font></td><td><font color='#3221b6'>Typ oferty:</font><font color='#ff9900'>".$tablica[12]."</font></td></tr>";
echo "</table><hr/>\n";
}
}
$biura = array (
new Wezyr(),
);
function listaPol($funkcja) {
global $biura;
$result = array();
for($i=0; $i<count($biura); $i++)
$result = array_merge($biura[$i]->$funkcja(), $result);
$result = array_unique ($result);
sort($result);
return $result;
}
function listaKrajow() {
return listaPol("getKraje");
}
function listaRegionow() {
return listaPol("getRegiony");
}
function listaWylotow() {
return listaPol("getWyloty");
}
function listaDat() {
return listaPol("getDaty");
}
function wyszukajOfert($kraj,$region, $data_od, $data_do, $wylot_z) {
global $biura;
echo "<table>";
for($i=0; $i<count($biura); $i++) {
if(isset($_POST['biura'])) if($_POST['biura'] != $biura[$i]->getTabela()) continue;
$wyniki = $biura[$i]->szukajWycieczki($kraj,$region, $data_od, $data_do, $wylot_z);
echo "<tr><td valign='top'><b>".
$biura[$i]->getTabela().
"</b></td><td>";
for($j=0; $j<count($wyniki); $j++)
$biura[$i]->wypiszSiebie($wyniki[$j]);
echo "</td></tr>";
}
echo "</table>";
}
function doSelectFromArray($tablica, $nazwa, $funkcjaFiltrujaca="") {
echo "<select name='".$nazwa."'>";
foreach($tablica as $wartosc) {
echo "<option value='".$wartosc."'>";
if($funkcjaFiltrujaca != "")
echo $funkcjaFiltrujaca($wartosc);
else
echo $wartosc;
echo "</option>";
}
echo "</select>";
}
?>
[/php]
oraz szukaj2.php
[php]<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<center>
<?php
require_once('wezyr.php');
if(isset($_POST['kraj']) &&
isset($_POST['region']) &&
isset($_POST['wylotZ']) &&
isset($_POST['dataWylotu'])) {
$kraj = $_POST['kraj'];
$region = $_POST['region'];
$wylotZ = $_POST['wylotZ'];
$dataWylotu = $_POST['dataWylotu'];
$dataDo = "9999-12-31";
wyszukajOfert($kraj,$region, $dataWylotu, $dataDo, $wylotZ);
} else {
?>
<form method=post action="szukaj.php" target="WynikiSzukaj">
<input type=hidden value="<?php echo $_GET['biura'];?>" name=biura>
<table>
<?php
echo "<tr><td>Kraj:</td><td>";
doSelectFromArray(listaKrajow(),"kraj");
echo "<tr><td>Region:</td><td>";
doSelectFromArray(listaRegionow(),"region");
echo "</td></tr><tr><td>Wylot z:</td><td>";
doSelectFromArray(listaWylotow(), "wylotZ", "odkodujIATA");
echo "</td></tr><tr><td>Wylot po:</td><td>";
doSelectFromArray(listaDat(), "dataWylotu");
echo "</td></tr>";
?>
<tr><td></td><td><input type="submit" value="Szukaj"></td></tr>
</table>
</form>
<?php
}
?>
</center>
</body></html>
[/php]
co robie źle? jeśli potrzebny jest jeszcze jakis plik to prosze o info.
