Od dłuższego czasu głowie się stworzeniem wyszukiwarki.
Problem - który próbowałem ugryźć na kilkanaście sposobów - wygląda następująco:
Posiadam dwie bazy danych MySQL 'mieszkaniac5' i 'mieszkaniac6'.
W bazach interesują nas kolumny:
'bud' - przybiera wartości dla mieszkaniac5 1-2, dla mieszkaniac6 3-5;
'nr';
'pietro';
'pow_uzyt';
'taras';
'ogródek';
'ilosc_pokoi';
'price'
podejście numer 1:
index.html
<?php [codebox]<html> <head> <link href="grid.css" type="text/css" rel="sytlesheet"/> </head> <body onlaod="init();"> <align="center"> <form action="grid.php" method="post"> Cena:<br> <br> Wielkość w m2:<br> <br> Ilość pokoi:<br> <br> Piętro:<br> <br> Nr. mieszkania: <input type="text" name="FA" /> <br> <br> <input type="submit" value="Szukaj!" /> </form> </align> </body> </html>[/codebox] ?>
grid.php
CODE<?php // program wyszukiwarki - grid.php // wyświetlenie nagłówka // usunięcie niepotrzebnych białych znaków $AA = $_post['AA']; $AB = $_post['AB']; $BA = $_post['BA']; $BB = $_post['BB']; $CA = $_post['CA']; $CB = $_post['CB']; $EA = $_post['EA']; $EB = $_post['EB']; $F = $_post['F']; require_once ('error_handler.php'); require_once ('config.php'); $mysqli=mysqli_connect ('xxx', 'xxx', 'xxx', 'xxx'); $query="SELECT 'bud', 'nr', 'pietro', 'pow_uzyt', 'taras', 'ogrodek', 'ilosc_pokoi', 'price' FROM mieszkaniac5 WHERE pietro BETWEEN '{$EA}' AND '{$EB}' OR pow_uzyt BETWEEN '{$BA}' AND '{$BB}' OR ilosc_pokoi BETWEEN '{$CA}' AND '{$CB}' OR price BETWEEN '{$AA}' AND '{$AB}' OR nr='{$F}'" ; // ustalenie ilości wyszukanych obiektów // jeśli nie, to wyświetl komunikat i zakończ działanie skryptu { } // jeśli jednak dane są wpisane poprawnie else { // wyswietlenie iloœci wyszukanych obiektów for($x=0;$x<$obAmount;$x++) { // przekształcenie danych na tablicę // wyœwietlenie numeru identyfikacyjnego // wyœwietlenie nazwy produktu } } // zamknięcie połączenia mysqli_close($mysqli); // koniec aplikacji ?>
Niestety występuję błąd - jakby zmienne były permanentnie puste...
Pomijam w tym momencie problem dwóch tabel w bazie...
Podejście numer dwa:
index wygląda tak samo
za to w grid:
CODE<?php // program wyszukiwarki - grid.php // wyświetlenie nagłówka // usunięcie niepotrzebnych białych znaków $AA = $_post['AA']; $AB = $_post['AB']; $BA = $_post['BA']; $BB = $_post['BB']; $CA = $_post['CA']; $CB = $_post['CB']; $EA = $_post['EA']; $EB = $_post['EB']; $F = $_post['F']; require_once ('error_handler.php'); require_once ('config.php'); $mysqli=mysqli_connect ('xxx', 'xxx', 'xxx', 'xxx'); $query="SELECT 'bud', 'nr', 'pietro', 'pow_uzyt', 'taras', 'ogrodek', 'ilosc_pokoi', 'price' FROM mieszkaniac5 WHERE pietro BETWEEN '$EA' AND '$EB' OR pow_uzyt BETWEEN '$BA' AND '$BB' OR ilosc_pokoi BETWEEN '$CA' AND '$CB' OR price BETWEEN '$AA' AND '$AB' OR nr='$F'" ; // ustalenie ilości wyszukanych obiektów // jeśli nie, to wyświetl komunikat i zakończ działanie skryptu { } // jeśli jednak dane są wpisane poprawnie else { // wyswietlenie iloœci wyszukanych obiektów for($x=0;$x<$obAmount;$x++) { // przekształcenie danych na tablicę // wyœwietlenie numeru identyfikacyjnego // wyœwietlenie nazwy produktu } } // zamknięcie połączenia mysqli_close($mysqli); // koniec aplikacji ?>
Błąd ten sam
Następnie zamiast zmiennych próbowałem dać zmienne $post_('wartość') - również nici.
Następnie umieściłem wszystko w jednym pliku 'index.php'
błąd dalej się powtarzał.
Zastanawiałem się nad rozwiązaniem pobrania całych tabel i rozwiazania tego na zasdzie:
if (empty('AA'))
{ if (empty('AB'))
i tak dalej...
else
{ sprawdzenie pozostałych zmiennych
$zmienna_tablicy_mieszkaniac5 = $zmienna_tablicy_mieszkaniac5 - wszystkie pozycje, gdzie 'price' < wartości podanej w 'AA', ale szczerze przyznam, że po pierwsze wydaje mi się to strasznie pracochłonne, a po drugie nie wiem jak zmienić zawartość tej zmiennej...
Za szybką pomoc dziękuję. Na pytania chętnie odpowiem, choć mam nadzieję, że dość obrazowo opisałem problem...
Edit:
Zmiana quote na CODEBOX