Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Wyszukiwarka...
Forum PHP.pl > Forum > Przedszkole
assasin
Witam, obrazu na wstępie pisze że jestem amatorem....
Proszę zajrzeć tutaj http://www.pizzeria.krakow.pl/menu.php#p
Chodzi mi o ten skrypt wyszukiwarki, wie ktoś może czy taki skrypt można skądś ściągnąć, uzupełniając tylko nazwy(składniki, pizze)?
Czy zrobienie takiego czegoś jest trudne?
Od czego zacząć? wstydnis.gif
bim2
Hmm, to jest normalny podział an kategorię.
  1. <input type="checbox" name="cat[]" value="3" />
  2. <input type="checbox" name="cat[]" value="1" />

i w php
  1. <?php
  2. $sql = 'SELECt * FROM lala WHERE cat_id IN("'.implode(',', $_POST['cat']).'")';
  3. ?>
melkorm
to bardziej szuka po składnikach w każdej pizzy tongue.gif nie katygoriami ;p więc bardziej ma zbiór nazw produktów lub id-ków do nich niż 1 katygorie smile.gif
bim2
no to
  1. <input type="checbox" name="cat[]" value="oliwki" />
  2. <input type="checbox" name="cat[]" value="ser" />

i w php
  1. <?php
  2. $where = array();
  3. foreach($_POST['cat'] as $v)
  4. {
  5.  $where[] = 'skladnik LIKE '%'.$v.'%'';
  6. }
  7. $sql = 'SELECt * FROM lala WHERE cat_id WHERE '.implode(' OR ', $where);
  8. ?>
melkorm
może się troche czpiam ale patrząc pod kąt tej akurat wyszukiwarki powinno być and haha.gif
assasin
Jak już pisałem jestem zielony z sql i mysq.
To tak:
<input type="checbox" name="cat[]" value="oliwki" />
<input type="checbox" name="cat[]" value="ser" />

to mam dodać do bazy mysq? przed dodaniem muszę utworzyć bazę, ok utworzyłem teraz muszę utworzyć tabele i tutaj jest problem:)
Przeczytałem że te zapytanie tworzy tabele:
CREATE TABLE nazwa_tabeli (nazwa_pola1 typ_pola1 [atrybuty], nazwa_pola2 nazwa_pola2 [atrybuty], ... nazwa_polaN typ_polaN [atrybuty], PRIMARY KEY(nazwa_polaX))

Tylko jak to ma być uzupełnione dla takiej wyszukiwarki....
bim2
nieee
tabela to:
NAZWA PIZZY | ROZMIAR | SKLADNIKI
----------------------------------------------
Margerita........| 30...........| oliwki,ser,boczek

I później moje zapytanie
  1. <?php
  2. $where = array();
  3. foreach($_POST['cat'] as $v)
  4. {
  5. $where[] = 'skladnik LIKE '%'.$v.'%'';
  6. }
  7. $sql = 'SELECT * FROM lala WHERE '.implode(' AND ', $where);
  8. ?>
assasin
Nic a nic nie rozumie wstydnis.gif ....
bim2
To powoli. Umiesz zrobić FORMa? smile.gif
  1. <form action="test.php" method="post">
  2. <input type="checkbox" name="skladnik[]" value="oliwka" />Oliwka<br />
  3. <input type="checkbox" name="skladnik[]" value="ser" />Ser<br />
  4. <input type="submit" />
  5. </form>

Później php:
  1. <?php
  2. print_r($_POST['skladnik']); //jak widzisz jest to tablica, więc użyjemy pętli foreach
  3. foreach($_POST['skladnik'] AS $val)
  4. {
  5. $nowa_tablica_where[] = "skladnik LIKE '%$val%'"; // tworzę kolejne klauzule dla WHERE, które potem połącze funkcją implode
  6. }
  7. $sql = 'SELECT * FROM lala WHERE '.implode(' AND ', $nowa_tablica_where);
  8. ?>

jesli czegoś nie rozumiesz to sprawdź funkcję implode(), pętlę foreach() i zapytanie a dokładniej WHERE ... LIKE smile.gif
assasin
Dalej nie rozumie:)

Kod
[/b]<h2 style="margin-top: 20px; margin-bottom: 10px">Wybierz składniki szukanej pizzy</h2>Proszę pamiętać, że wraz z ilością składników zmniejsza się szansa na znalezenie pizzy.<div style="margin-bottom: 20px"></div>
<form name="listForm" enctype="multipart/form-data" method="post" action="">
<div style="width: 150px; float: left"><label for="0"><input type="checkbox"  name="i0" value="1" />ananasy</label>
<label for="1"><input type="checkbox"  name="i1" value="1" />anchois</label>
<label for="2"><input type="checkbox"  name="i2" value="1" />banany</label>
<label for="3"><input type="checkbox"  name="i3" value="1" />bekon</label>
<label for="4"><input type="checkbox"  name="i4" value="1" />brokuły</label>
<label for="5"><input type="checkbox"  name="i5" value="1" />brzoskwinie</label>
<label for="6"><input type="checkbox"  name="i6" value="1" />cebula</label>
<label for="7"><input type="checkbox"  name="i7" value="1" />curry</label>
<label for="8"><input type="checkbox"  name="i8" value="1" />czosnek</label>
<label for="9"><input type="checkbox"  name="i9" value="1" />fasola czerwona</label>
<label for="10"><input type="checkbox"  name="i10" value="1" />fasola szparagowa</label>
</div><div style="width: 150px; float: left"><label for="11"><input type="checkbox"  name="i11" value="1" />frutti di mare</label>
<label for="12"><input type="checkbox"  name="i12" value="1" />groszek zielony</label>
<label for="13"><input type="checkbox"  name="i13" value="1" />jabłka</label>
<label for="14"><input type="checkbox"  name="i14" value="1" />jogurt</label>
<label for="15"><input type="checkbox"  name="i15" value="1" />kabanosy</label>
<label for="16"><input type="checkbox"  name="i16" value="1" />kapary</label>
<label for="17"><input type="checkbox"  name="i17" value="1" />kebab drobiowy</label>
<label for="18"><input type="checkbox"  name="i18" value="1" />kiełbasa</label>
<label for="19"><input type="checkbox"  name="i19" value="1" />kiwi</label>
<label for="20"><input type="checkbox"  name="i20" value="1" />krewetki</label>
<label for="21"><input type="checkbox"  name="i21" value="1" />kukurydza</label>
</div><div style="width: 150px; float: left"><label for="22"><input type="checkbox"  name="i22" value="1" />kurczak wędzony</label>
<label for="23"><input type="checkbox"  name="i23" value="1" />louisiana tabasco</label>
<label for="24"><input type="checkbox"  name="i24" value="1" />łosoś</label>
<label for="25"><input type="checkbox"  name="i25" value="1" />majonez</label>
<label for="26"><input type="checkbox"  name="i26" value="1" />małże</label>
<label for="27"><input type="checkbox"  name="i27" value="1" />ogórek konserwowy</label>
<label for="28"><input type="checkbox"  name="i28" value="1" />oliwki</label>
<label for="29"><input type="checkbox"  name="i29" value="1" />oregano</label>
<label for="30"><input type="checkbox"  name="i30" value="1" />papryczka jalapenos</label>
<label for="31"><input type="checkbox"  name="i31" value="1" />papryka</label>
<label for="32"><input type="checkbox"  name="i32" value="1" />pieczarki</label>
</div><div style="width: 150px; float: left"><label for="33"><input type="checkbox"  name="i33" value="1" />polędwica z indyka</label>
<label for="34"><input type="checkbox"  name="i34" value="1" />pomidory</label>
<label for="35"><input type="checkbox"  name="i35" value="1" />salami</label>
<label for="36"><input type="checkbox"  name="i36" value="1" />ser feta</label>
<label for="37"><input type="checkbox"  name="i37" value="1" />ser mozzarella</label>
<label for="38"><input type="checkbox"  name="i38" value="1" />ser pleśniowy</label>
<label for="39"><input type="checkbox"  name="i39" value="1" />szparagi</label>
<label for="40"><input type="checkbox"  name="i40" value="1" />szpinak</label>
<label for="41"><input type="checkbox"  name="i41" value="1" />szynka</label>
<label for="42"><input type="checkbox"  name="i42" value="1" />tuńczyk</label>
</div><br style="clear: both" />
<input type="hidden" name="search" value="1" />
<input type="submit" value="Wyszukaj pizze" />
<input type="button" value="Wyświetl całe menu" onclick="goToMenu()" /></form>
[b]


Tak wygląda ta wyszukiwarka w html.
Ten kod który podałeś, muszę go dodać do bazy?
Pisałem już że zielony jestem ..
bim2
Nie mam siły. Może jesteś zielony, ale porównac kodu tez nie umiesz. Podałem to samo co tutaj jest ... Do bazy dodaj tabele jaką już podawałem wcześniej.
assasin
Zaraz pierw ma być form pod nim skrypt php który ty podałeś....
Mój problem w tej chwili tkwi w tym że nie wiem jak stworzyć tabele

NAZWA PIZZY | ROZMIAR | SKLADNIKI
----------------------------------------------
Margerita........| 30...........| oliwki,ser,boczek

nic mi to nie mówi sciana.gif
bim2
Zainstaluj phpmyadmin
assasin
Zainstalowałem:)
Wchodze do mojej bazy klikam otwórz tabele, wpisuje nazwe ,,składniki'' w liczna pól 25 (chyba chodzi o liczbę składników(ser, czosnek,cebula i inne))
Teraz mam:
Kod
Pole      TypDokumentacja      Długość/Wartości*1      Domyślnie2      Metoda porównywania napisów      Atrybuty      Null      Indeks      A_I      Komentarze


I nie wiem jak to wypełnić....
erix
Masz nawet po sąsiedzku tongue.gif
http://wortal.php.pl/wortal/artykuly/php/p...orial_php_mysql

Ale się nie chce...
assasin
Przeczytałem z 10 poradników o tworzeniach tabel żaden nie pomógł.... nie ma napisane jak uzupełniać tabele w phpmyadmin... krok po kroku dla takiej wyszukiwarki:)


Przykład:

http://wortal.php.pl/phppl/wortal/artykuly...cja_bazy_danych
Cysiaczek
Bardzo proszę o dodanie bbcode przez autorów postów.
@bim2 - prawie 1000 na karku i takie coś? Nieładnie dry.gif

Cytat
Przeczytałem z 10 poradników o tworzeniach tabel żaden nie pomógł.... nie ma napisane jak uzupełniać tabele w phpmyadmin... krok po kroku dla takiej wyszukiwarki:)

Powiem Ci jedną rzecz, zupełnie bez złośliwości. Nie zrobisz tego w taki sposób. Nie ma przepisu na tabelę dla pizzeri. Na pewno nie zrobisz tego na jednej tabeli. Ja tu widzę relację wiele do wielu pizza_składnik, wiec masz już co najmniej 3 powiązane tabele. Proponuję gruntowne poszerzenie wiedzy na temat baz danych. Mówisz, że czytałeś 10 poradników - widać nic nie zrozumiałeś rolleyes.gif
Zobacz sobie to: http://web.pertus.com.pl/~stanley/access_pigulka/Relacje.htm

Pozdrawiam.
bim2
@Cysiaczek
Czasami to mi się nie chce bbcode wpisywać. smile.gif [poprawione] Co do bazy, dla prostego usera wystarczy 1 tabela. Na większej sobie nie poradzi, a tak może mieć prowizorkę. smile.gif
assasin
Aha tzn pierw muszę zrobić tabele z pizzami a później kolejne tabele przypisując każdej pizzy składniki....

Ale jaką ja potrzebuje tabele....jaki ma być typ jest z 30 do wyboru, długość?, o co chodzi z tym domyślne, metoda porównywania napisów?, atrybuty, null, index, komentarze...
Jest jakiś poradnik w którym przeczytam jak to wypełniać bo jeszcze takiego nie znalazłem.
bim2
Poszukaj na internecie poradników. smile.gif Nie ma sensu pisać drugi raz to co google znajdzie smile.gif
assasin
Dziś znalazłem skrypt księga wpisów:) idealne na stronkę pizzerii, jest on napisany w php...
i dało mi to trochę do myślenia..
Tą księgę wpisów wrzucam do katalogu ustawiam chmody i gotowe:) bez bawienia się z mysq:>
Czy z tą wyszukiwarką czasem nie jest tak:)
W pliku HTML tworze form:
Kod
<form action="test.php" method="post">
<input type="checkbox" name="skladnik[]" value="oliwka" />Oliwka<br />
<input type="checkbox" name="skladnik[]" value="ser" />Ser<br />
<input type="submit" />
</form>


teraz tworze plik php o tej zawartości co podałeś:

Kod
<?php
print_r($_POST['skladnik']); //jak widzisz jest to tablica, więc użyjemy pętli foreach
foreach($_POST['skladnik'] AS $val)
{
$nowa_tablica_where[] = "skladnik LIKE '%$val%'"; // tworzę kolejne klauzule dla WHERE, które potem połącze funkcją implode
}
$sql = 'SELECT * FROM lala WHERE '.implode(' AND ', $nowa_tablica_where);
?>

I nic nie mam dodawać do bazy mysq itp.
Jeśli nie, to dlaczego bardziej skomplikowany skrypt jak księga wpisów(przynajmniej mi się tak wydaje:p) nie wymaga dodawania tabel do mysq itp.
bim2
Mój skrypt także wymaga mysql itd. Myślałem, że poprostu masz tabelę z pizza i nie wiesz jak zrobić wyszukiwarkę. smile.gif
assasin
Ehh pisałem że nie wiem jak zrobić tabele...
Może ktoś pomoże??
piotrooo89
jak to jak? taki przykład na szybko:

id | nazwa_pizzy | cena | składniki

nie wiem co tam jeszcze może być...
bim2
google.pl -> phpmyadmin -> download -> install -> use it smile.gif

Phpmyadmin pomoże ci zrobić tabelę jaką chcesz. Jest nawet intuicyjny. Jak nie to znajdź bylejaki poradnik w google. ;P
assasin
Gdzie w tym kodzie ma być nazwa tabeli:

Kod
<?php
print_r($_POST['skladnik']);
foreach($_POST['skladnik'] AS $val)
{
$nowa_tablica_where[] = "skladnik LIKE '%$val%'"; /
}
$sql = 'SELECT * FROM lala WHERE '.implode(' AND ', $nowa_tablica_where);
?>
piotrooo89
w zapytaniach sql operuj na zmiennych dla lepszej jakości życia... a tablica post juz ma przypisany warosc w tabliczy wiec nie wiem po co interujesz po niej foreach'em? a tak btw to co chcesz uzyskac?
assasin
blinksmiley.gif sciana.gif
eee blinksmiley.gif biggrin.gif ja niedawno się uczyłem html.... biggrin.gif tak napisałeś że nie zrozumiałem....

http://www.pizzeriajaśimałgosia.pl/menu5935.html
Ma to być tak po zaznaczeniu pieczarki i szynka wyświetli się:


Pizza tradycyjna


2. Capriciosa ser, szynka, pieczarki 17,70 19,80
5. Decoro ser, szynka, pieczarki, papryka, czosnek 20,60 22,90
Pizza owoce morza


40. Gud Fadern ser, krewetki, szynka, pieczarki, cebula, majonez 22,20 24,80
43. Legato ser, szynka, pieczarki, małże, krewetki, szparagi, oliwki 26,70 29,90
Pizza z owocami


59. Amore ser, szynka, pieczarki, banany, ananasy, majonez 23,40 26,50


Dowiedziałem się że żeby zrobić taką wyszukiwarkę potrzebuje:

3 tabele:
1- Pizza
2-Składniki
3-Pizza i jej składniki
Tabela ma tak wyglądać:

============
id || skladnik=
============
1 || salami

muszę zrobić pole id, nazwa, skladniki1, skladniki2, skladniki3, skladniki4, itp w zależności ile pizza ma składników
Jak już powpisuje to wszystko robie wyszukiwanie czy poszczególne składniki są podobne dla danej pizzy..
biggrin.gif tylko jak powiązać ten skrypt napisany przez
bim2 z tabelami?
I czy on jest przystosowany dla 3 tabel.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.