Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Wyszukiwarka
Forum PHP.pl > Forum > Przedszkole
pietrov8
Witam.
Chciałbym wykonać wyszukiwarkę dla sklepu internetowego. Wyglądałoby to następujaco. Klient oddaje np. Komputer do naprawy i dostaje nr ID produktu. Następnie wchodzi na stronę sklepu wklepuje w wyszukiwarkę nr ID swojego kompa i wyświetla mu się strona z stanem swojego kompa.
wookieb
a poza "chciałbym" to jaki problem widzisz?
pietrov8
Cytat(wookieb @ 13.09.2009, 13:48:35 ) *
a poza "chciałbym" to jaki problem widzisz?


Nie wiem jak to wykonać, i poszukuje pomocy ;/
WebKing
  1. $query = mysql_query("SELECT * FROM sklep WHERE item_id='".(int)$id."'");
pietrov8
Plik html wykonany
  1. <from action="search.php">
  2. Wpisz ID swojego sprzętu: <input type="text"> <input type="submit" value="Wyszukaj">
  3. </from>
  4. </body>
  5. </html>


Teraz potrzebuje napisać search.php i ująć w nim tą linijkę którą podał WebKing. Czy jest jakiś przykładowy styl??
bogdan89
łączysz się z serwerem bazy danych: mysql_connect
wybierasz bazę: mysql_select_db
wywołujesz zapytanie do bazy, za przykładem podanego wyżej
pobierasz informację z bazy danych do tablicy: mysql_fetch_array
no i wyświetlasz na stronie.

ot to cała filozofia.

jeśli nie chce Ci się tego robić samodzielnie, załóż wątek w "Giełdzie ofert".
na pewno w kilka chwil zgłosi się kilka osób, które to zrobią za kilka PLN.
pietrov8
No wiesz początkujący jestem i chcę się sam nauczyć takie rzeczy robić.

A czy naprawdę nie ma jakiegoś szkicu na taką wyszukiwarkę?questionmark.gif
Crozin
No ale przecież dostałeś już "przepis" na to jak to zrobić? W manualu masz przykłady na wykorzystanie konkretnej funkcji.
pietrov8
  1. <?php
  2. mysql_connect('localhost:81', 'root', '') or
  3. die('Nie można się połączyć: ' . mysql_error());
  4. $query = mysql_query("SELECT * FROM sklep WHERE item_id='".(int)$id."'");
  5.  
  6. $result = mysql_query("SELECT id, nazwa FROM tabela");
  7.  
  8. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  9. printf ("ID: %s Nazwa: %s", $row[0], $row[1]);
  10. }
  11.  
  12. ?>


Mam coś takiego i... nic się niedzieje po wypełnieniu formularzu.
bogdan89
ok. kilka podstawowych spraw:

1) czy na pewno masz bazę danych o nazwie 'id' ?
2) czy w tej bazie danych masz tabelę o nazwie 'sklep' ?

3) jeśli powyższe się zgadza, to zrób w ten sposób:
  1. <?php
  2. mysql_connect('localhost:81', 'root', '') or
  3. die('Nie można się połączyć: ' . mysql_error());
  4. $query = 'SELECT * FROM sklep WHERE item_id='.$id.' LIMIT 1';
  5. $result = mysql_query($query);
  6. $row = mysql_fetch_array($result);
  7. echo $row['item_content']; //item_content zmień na swoją nazwę kolumny, w której przechowujesz treść, czy tam stan prac- nie wiem.
  8. ?>


poza tym, chyba lepiej będzie, jeśli zaczniesz od jakiejś książki z kursem PHP. Stron internetowych z kursami PHP i MySQL też jest pełno.
k_@_m_i_l
W twoim kodzie nie masz nigdzie zadeklarowanej zmiennej $id.
Jeśli dobrze myślę, to chcesz korzystać ze zmiennych globalnych,a to nie jest najlepsze rozwiązanie.
Jeżeli przesyłasz formularz za pomocą metody GET to zrób :
  1. $id = intval($_GET['id']);

jeśli POST-em to :
  1. $id = intval($_POST['id']);

Wstaw to przed linią w której wykonujesz zapytanie i powinno śmigać.
Polecam jednak jakiś kurs PHP i manual,manual,manual do bólu tam szukaj bo tam wszystko jest opisane.
pietrov8
Ok problem rozwiązany. Teraz chciałbym spróbować na drugi sposób.

Wpisuje nr ID w stworzony formularz html następnie skrypt php pobiera dane z pliku txt (wcześniej utworzonego) i wyświetla dane przypisane do nr ID w pliku txt.
Ociu
file
Polecam też trochę własnej inicjatywy i przejrzenie manuala lub jakiegoś kursu.
pietrov8
Ok pobrać plik potrafię ale jak wyświetlić dany numer??

  1. <?php
  2. $tmp = file('text.txt', 'rt');
  3. $out = '';
  4. foreach ($tmp as $row) {
  5. $linia = explode('|', trim($row));
  6. $value = $linia[1].$linia[3];
  7. $linia = array_slice($linia, 1);
  8. $out .= '<tr>';
  9. $out .= '<td>'.implode('</td><td>', $linia).'</td>';
  10. $out .= '<td><br></td>';
  11. $out .= '</tr>';
  12. }
  13. echo $out;
  14. ?>


Dane mi wyświetla ładnie tylko teraz chcę by spośród tych 3 wybrało mi jedną zdefiniowaną w formularzu html przez osobę odwiedzającą
nowotny
No to robisz ifa i porównujesz czy dany wiersz się zgadza z wybranym z formularza... jak się zgadza to wyświetlasz... jak nie, to nie...
pietrov8
A mógłbyś mi poprawić ten kod. smile.gif Byłbym wdzięczny.

Nikt niepomoże??
Chociaż jaką strukturę IF zastosować??

Wygląd pliku txt
Cytat
1|Laptop| w trakcie naprawy
2|Monitor| w trakcie naprawy
3|Komputer| naprawiony
Crozin
A może sam byś się trochę wysilił i pokazał jak próbujesz robić i ewentualnie z czym Ci nie wychodzi?
pietrov8
  1. <?php
  2. $tmp = file('text.txt', 'rt');
  3. $out = '';
  4. foreach ($tmp as $row) {
  5. $linia = explode('|', trim($row));
  6. $value = $linia[2].$linia[3];
  7. $linia = array_slice($linia, 1);
  8. $out .= '<tr>';
  9. $out .= '<td>'.implode('</td><td>', $linia).'</td>';
  10. $out .= '<td><br></td>';
  11. $out .= '</tr>';
  12. }
  13. if $_GET="1";
  14. echo $out;
  15. ?>


Wywala problem
Cytat
Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in C:\Program Files\WebServ\httpd\wyszukiwarka\search.php on line 13
TrevorGryffits
Rany włoskie... Polecam zajrzenie do dokumentacji, czy kursu odnośnie struktur kontrolnych...
CreamDealer
Witam! Jestem praktycznie zielony z sql'a, jednak udało mi się coś takiego stworzyć i teraz chciałbym zrobić wyjątek wyszukiwania dla jednej zmiennej, "kwota". Chciałbym, aby ta zmienna była wyszukiwana z between, czyli z przedziału, który zadawany jest przez użytkownika w dwóch inputboxach (kwota1 i kwota2). Czy da się tak ustawić, żeby przy nie wypełnieniu tych pozycji (lub jednej z nich) wyświetlał wszystko (lub minimum lub maksimum, w zależności od wypełnienia).
  1. <?php
  2. $search_array = array('usluga', 'branza', 'kwota', 'doradca');
  3. $where = array();
  4. foreach ( $search_array as $search ) {
  5. $value = JRequest::getVar($search, '' , 'post');
  6. if ( $value ) {
  7. $where[] = " $search LIKE '%$value%' ";
  8. }
  9. }
  10. if ( !empty($where) ) {
  11. echo " WHERE ".implode(' AND ', $where);
  12. }?>


Z góry dziękuję za pomoc!
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.