Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwanie
Forum PHP.pl > Forum > PHP
!!_:!SnAkE!:_!!
Chciałbym wiedziec jak zrobic wyszukiwanie w php ofkors) na zasadzie formularza z 4 polami z których kazde stanowi jakas ceche, i mozna wyszukiwac albo po 1 polu, 2,3 albo po wszystkich? Czy to na zasadzie if'a ze jezeli 1 pelne 2 puste 3 puste 4 puste to kwerenda sql'a apropos 1 pola, jesli dwa pierwsze pelne to kwerenda po 2 polach itp ? Tych warunków byłoby od cholery, jest jakis prostrzy sposób? Bo to narazie pierwszy i jedyny na jaki wpadłem (z php mam do czynienia od jakiegos tygodnia moze...) z gory dzieki za pomoc wszelaka biggrin.gif
nospor
  1. <?php
  2.  
  3. $pole1=$_POST['pole1'];
  4. $pole2=$_POST['pole2'];
  5. //.......
  6. $where=array();
  7. if ($pole1) $where[]=&#092;"pole1=$pole1\";
  8. if ($pole2) $where[]=&#092;"pole2=$pole2\";
  9. //.....
  10. $where=implode(' and ',$where);
  11.  
  12. ?>
!!_:!SnAkE!:_!!
Hmmmm ciezka sprawa, i jak potem sformuowac zapytanie mysql'a od tego ?
nospor
No przecież maż warunki już podane.
  1. <?php
  2.  
  3. $pole1=$_POST['pole1'];
  4. $pole2=$_POST['pole2'];
  5. //.......
  6. $where=array();
  7. if ($pole1) $where[]=&#092;"pole1=$pole1\";
  8. if ($pole2) $where[]=&#092;"pole2=$pole2\";
  9. //.....
  10. $where=implode(' and ',$where);
  11.  
  12. $sql='select * from tabela ';
  13. if ($where) $sql.='where '.$where;
  14.  
  15. ?>
kowal1122
czy ty masz dysk cos tam?
jeśli jest tu jakiś mod to niech poprawi literówkę.
nospor
Cytat
czy ty masz dysk cos tam?

Do kogo to było? O co ci chodzi?
kowal1122
nospor do ciebie to było,
pisze się masz a nie "maż"!!! aaevil.gif
nospor
i to ja dostaję ostrzeżenia za niby nabijanie postów.

Jakby się tak czepiać każdego kto popełnił literówkę i pisać posta, to te forum zwiększyło by liczbę postów o ładne parę tysięcy
kowal1122
a niema tu żadnych moderatorów ktorzy trzymają tu porządek?
na innych forach to tam sie dostaje za jeden bład 1 ostrzeżenie smile.gif (przykład: www.forum.mage.pl )
nospor
oj skończ już ten temat, który nie jest zgodny z tematem. Sam byka walnąłeś więc się innych nie czepiaj
Cytat
na innych forach to tam sie dostaje za jeden bład 1 ostrzeżenie
chodzi mi o wyraz "bład". powinno być "błąd"

Moderatorzy są. Tylko chyba niektórzy pewnych użytkowników nie lubią (jak mnie Krzychu)

Temat kolegi exclamation.gif_:!SnAkE!:_ już chyba pomogŁem rozwiązać, niee wiem, nie wypowiedział się, więc kończmy tę dyskusję
kowal1122
dobrze kończymy temat.
odpowiedz na pytanie zadane przezemnie w innym topicu...
!!_:!SnAkE!:_!!
Hmmm nie wiem czemu, ale nie dziala. Próbowalem wyswietlic wyniki i nic. Nic nie wyswietla nie kumam czemu sad.gif wkleje kod, moze sie posmiejecie i pokazecie jak jest dobrze:

<HTML>
<HEAD>
<TITLE> Wyszukaj </TITLE>
</HEAD>

<BODY>
<FORM action="wyszukaj.php" method="post">
Login:<INPUT type="text" name="login"><BR>

Wojewodztwo:<Input type="text" name="wojewodztwo"><BR>
<input type="submit" value="Szukaj">

</FORM>
<?php

$login=$_POST['login'];
$woj=$_POST['wojewodztwo'];
$kwerenda=array();
if ($login) $kwerenda[]="Login=".$login;
if ($plec) $kwerenda[]="Plec=".plec;
if ($woj) $kwerenda[]="Wojewodztwo=".$woj;
$kwerenda=implode('and',$kwerenda);

$host="localhost";
$username="costam";
$password="costam";
$database="costam";
$conn=mysql_connect($host, $username, $password);
mysql_select_db($database, $conn);
$sql='select * from konto ';
if($kwerenda) $sql.='where '.$kwerenda;

while($ilosc = mysql_fetch_array($sql)){
echo $ilosc['Login']."<BR>";
echo $ilosc['Plec']."<BR>";
echo $ilosc['Wojewodztwo']."<BR>";
}

mysql_close();

?>

</BODY>
</HTML>
Potem rozszerze to na wiecej pol, niech naraziue na 2 zadziala biggrin.gif
aha, i taki blad jest:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/fotka/public_html/wyszukaj.php on line 34
co to ? ohmy.gif niby warning, ale denerwuje
nospor
po pierwsze: uzywaj BBCODE
po drugie, źle skopiwowaleś mój kod:
masz:
$kwerenda=implode('and',$kwerenda);
powinno być:
$kwerenda=implode(' and ',$kwerenda);

przed i po and ma być spacja, inaczej zapytanie sql będzie zle
kowal1122
a jaki bedzie skrypt do wyszukiwania czegoś na swojej stronie www?
nospor
nie rozumiem pytania? cze wyszukiwanie? jakiegoś tekstu na stronce, czy czegoś z bazy?
!!_:!SnAkE!:_!!
pooprawiłem i dalej nie dziala ;(
kowal1122
jakiegoś artykułu lub wyrazu... smile.gif
nospor
poczytaj se troche o mysql_fetch_array(). Do niej wkladasz wynik funkcji mysql_query (o niej też se poczytaj). POwinno być:

  1. <?php
  2.  
  3. $login=$_POST['login'];
  4. $woj=$_POST['wojewodztwo'];
  5. $kwerenda=array();
  6. if ($login) $kwerenda[]=&#092;"Login=\".$login;
  7. if ($woj) $kwerenda[]=&#092;"Wojewodztwo=\".$woj;
  8. $kwerenda=implode(' and ',$kwerenda);
  9.  
  10. $host=&#092;"localhost\";
  11. $username=&#092;"costam\";
  12. $password=&#092;"costam\";
  13. $database=&#092;"costam\";
  14. $conn=mysql_connect($host, $username, $password);
  15. mysql_select_db($database, $conn);
  16. $sql='select * from konto ';
  17. if($kwerenda) $sql.='where '.$kwerenda;
  18. $res=mysql_query($sql);
  19. if ($res)
  20. {
  21. while($ilosc = mysql_fetch_array($res)){
  22. echo $ilosc['Login'].&#092;"<BR>\";
  23. echo $ilosc['Plec'].&#092;"<BR>\";
  24. echo $ilosc['Wojewodztwo'].&#092;"<BR>\";
  25. }
  26. }
  27.  
  28.  
  29. ?>


@kowal1122: na stronce wyrazu to ci przęglądarka może szukać
kowal1122
Cytat(nospor @ 2005-04-21 13:47:14)
[<?php
@kowal1122: na stronce wyrazu to ci przęglądarka może szukać
?>

nierozumiem...?
nospor
wciskasz ctrl+f, wpisujesz szukane slowo i ci szzuka
!!_:!SnAkE!:_!!
fajnie, tylko teraz po kliknieciu submit, nic sie nie pokazuje, a po 2 kliknieciu pokazuja sie 2 wpisy: jeden apropos wyszukania, a 2 z kosmosu biggrin.gif Poprawie to i dam znac biggrin.gif Dzieki za pomoc
kowal1122
ale chciałbym rzeby był taki osobny link do tego, znaczy rzeby było to na stronie.
wyszukiwarka,bo przeciętni urzytkownicy nieznają tego sposobu...
nospor
jak się pisze jakąś wyszukiwarkę, to odnosnie wyszukiwania w bazie a nie w przeglądarce. ctrl+f jest stosowane w wielu innych programach, więc większość to zna. jak nie zna to w chodzi w menu->edit->szukaj i ma.
Bez przesady
!!_:!SnAkE!:_!!
I nie wiem czemu, jak wchodze na wyszukanie, to na wstepie mam wyswietlone wszystkie rekordy z bazy biggrin.gif
nospor
No jak to czemu. Ty wypisujesz rekordy nie ważne, czy ktoś wyslal formularz czy nie. Także na samym początku nie ma żadnych warunków i są wypisywane wszystkei rekordy. Proste biggrin.gif
jak chcesz wypisywać dopiero po wcisnieciu szukaj to daj:
<input type="submit" value="Szukaj" name="search">

i szukaj dopiero gdy:
  1. <?php
  2.  
  3. if (isset($_POST['search']))
  4. {
  5. //szukaj
  6. }
  7. ?>


ja już domciu lecę. do jutra
!!_:!SnAkE!:_!!
Dzieki, spoko, ale nie wiem jeszcze czemu nie szuka po loginie. po woj. spoko, wyswietla i gites, ale po loginie nie chce
nospor
Może w bazie pole login nazywa się inaczej? No nie wiem. A pokaż jeszcze raz cały kod z poprawkami, tylko użyj bbcode biggrin.gif
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.