mam problem. Chciałbym na stronę wstawić wyszukiwarkę, która szukałaby w bazie danych odpowiednich rekordów. Byłoby pole : imię, nazwisko, data urodzenia i data zgonu. Użytkownik mógłby, ale nie musiał, wypełnić odpowiednie pole. Dajmy na to, że wpisze nazwisko : Kowalski to wtedy wyskakują mu wszystkie rekordy z nazwiskiem Kowalski. Jak taką bazę i do tego wyszukiwarkę zrobić? Na razie mam wszystkie rekordy są w Excelu.
Strona jest w html/css, w najzwyklejszym notatniku zrobiona…
A baza danych zapewne w php/mysql musi być zrobiona. Czy np. jeśli z programu GS-Base mam zapisany plik w html to z można go podłączyć pod wyszukiwarkę, aby szukała w tym pliku? Tak głośno myślę, nie wiem, dlatego pytam.
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
`surname` varchar(50) NOT NULL,
`birthday` datetime NOT NULL,
`die` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
SELECT * FROM `users` WHERE name LIKE 'Krzysztof'
wybierze Ci wszystkich którzy mają na imię Krzysztof
w zależności od ilości wypełnionych pól dokładasz “AND surname LIKE ‘aaa’ AND…”
Jeśli chcesz bardziej elastycznie to możesz użyć LIKE “%Krzy%” i zamiast AND użyj
w logice wyszukiwania
AND oznacza i
OR oznacza lub
% przy LIKE oznacza dowolny znak/i
Oczywiście jeszcze obsługa którą napiszesz w PHP lub mogę to zrobić ja za niewielkie $$$ :twisted:
CREATE TABLE IF NOT EXISTS users (
id serial NOT NULL,
name text NOT NULL,
surname text NOT NULL,
birthday date NOT NULL,
die date NOT NULL,
PRIMARY KEY (id)
);
SELECT * FROM users WHERE name LIKE 'Krzysztof';
Imię: Nazwisko : Rok urodzenia : Rok zgonu :
[/code]
Rozumiem, że teraz trzeba zrobić bazę php => rekord.php, aby obsługiwała tą wyszukiwarkę, ale jak?
Ten MySQL, gdzie mam wkleić? Strona będzie na serwerze cba. Tam jest phpMyAdmin, mam to gdzieś tam wprowadzić? Przepraszam, ale na razie nie ogarniam jak zrobić taką wyszukiwarkę, więc kombinuje jak mogę.
Jeśli użytkownik będzie szukał Krzysztofa to będzie mu o niego chodzić, a nie o Krystynę - po co tu wildcardy?
Stosuj w tych zapytaniach normalnie equala i tylko quote-uj (PDO) tekst podany przez użytkownika - szybsze i bezpieczniejsze.
To tak jak w PHP napierdzielanie dwóch equali kiedy spodziewamy się wartości false albo tekstu - jeśli będzie false to zadziała i
$var === false
jak i
$var == false
z tym, że w przypadku trzech wykona się to szybciej. Tak na boku
%
nie oznacza dowolnego znaku tylko dowolny ciąg znaków: K% to Krzysztof jak i Kamil, Krystyna, Kazimierz jak i K. Jeśli potrzebujesz pojedynczego znaku to używa się tzw. podłogi