Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] Problem z wyszukiwarką
mtskilla
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 17.01.2007

Ostrzeżenie: (0%)
-----


Witam mam na stronie wyszukiwarkę. Oto kod:

  1. <form acrion="szuk.php" method="post">
  2. <input type="text" name="szuk" size="27" value="<?php echo $_POST['szuk']; ?>" />
  3. <input type="submit" name="submit" value="Szukaj" />
  4. </form>


  1. <?php
  2. $x = $_POST['szuk'];
  3. ?>

i pozniej nizej wypisuje z bazy za pomocą
  1. <?php
  2. $sql="SELECT * FROM zdjecia WHERE autor LIKE '$x' ORDER BY autor";
  3. ?>


Moj problem polega na tym, ze chcialbym zrobic takie cos, ze jesli by sie wpisalo mniej niz 3 litery to by wyskakiwalo, ze za malo liter.
Wiem ze trzeba machnąć if'a przed tym $x = $_Post i jak warunek niespełniony to wywala za malo liter i dalej else jak spelniony i pobranie z bazy odpowiednich wyników. Ale jak zrobic warunek ? nie mam pojecia. Aha jeszcze jedna sprawa mi sie przypomniala. Jak mam to tak zrobione to jak wchodze na strone to pojawia mi sie cala lista wszsytkich elementow($x = 0 wiec wszystko pasuje) jak zrobic zeby nic sie nie wyswietlalo na starcie?

Wielkie dzieki za wszelaką pomoc. Pzdr smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
uli
post
Post #2





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

Ostrzeżenie: (0%)
-----


Cytat(mtskilla @ 27.03.2007, 10:57:17 ) *
Witam mam na stronie wyszukiwarkę. Oto kod:

  1. <form acrion="szuk.php" method="post">
  2. <input type="text" name="szuk" size="27" value="<?php echo $_POST['szuk']; ?>" />
  3. <input type="submit" name="submit" value="Szukaj" />
  4. </form>



Moj problem polega na tym, ze chcialbym zrobic takie cos, ze jesli by sie wpisalo mniej niz 3 litery to by wyskakiwalo, ze za malo liter.
Wiem ze trzeba machnąć if'a przed tym $x = $_Post i jak warunek niespełniony to wywala za malo liter i dalej else jak spelniony i pobranie z bazy odpowiednich wyników. Ale jak zrobic warunek ? nie mam pojecia. Aha jeszcze jedna sprawa mi sie przypomniala. Jak mam to tak zrobione to jak wchodze na strone to pojawia mi sie cala lista wszsytkich elementow($x = 0 wiec wszystko pasuje) jak zrobic zeby nic sie nie wyswietlalo na starcie?

Wielkie dzieki za wszelaką pomoc. Pzdr smile.gif


  1. <script LANGUAGE = "JavaScript">
  2. function checkForm(form)
  3. {
  4. if (form.szuk.length<3)
  5. {
  6. alert("Pole powinno zawierać minimum 3 znaki!")
  7. return false
  8. }
  9. return true
  10. }
  11.  
  12. <form action="szuk.php" method="post" onsubmit="return checkForm(this)">
  13. <input type="text" name="szuk" size="27" value="<?php echo $_POST['szuk']; ?>" >
  14. <input type="submit" name="submit" value="Szukaj" >
  15. </form>


Ten post edytował uli 27.03.2007, 11:06:14


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
Neeke
post
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 16
Dołączył: 22.02.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


ohhh... albo bez js mozesz
dadac warunki w if ktora sprawdza ilosc znakow... oczywiscie w pliko wykonywalnym znaczy sie tam gdzie ... dochodzi do pobrania danych z bazy
przy takim zastosowaniu jest mozliwosc... rozszezania o wiele wiecej... ale tzreba pogłowkowac





  1. <?php
  2. $minimum='3';
  3.  
  4. $max='90';
  5.  
  6. $dlugosc=strlen($TWOJA ZMIENNA Z FORM); // sprawdzenie dlugosci wprowadzonego tekstu
  7. if (($dlugosc>=$max)or($dlugosc<$minminimum)) {
  8.  TU dajesz Komunikat o zamalej liczbie liter
  9.  
  10. } 
  11.  
  12.  else 
  13.  {
  14.  
  15. Tu dajesz wyciagniecie danych z bazy....
  16.  
  17.  
  18.  
  19. }
  20. ?>




ot włala takie trudne to nie jest:)

Ten post edytował Neeke 27.03.2007, 11:17:05
Go to the top of the page
+Quote Post
uli
post
Post #4





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

Ostrzeżenie: (0%)
-----


Cytat(Neeke @ 27.03.2007, 11:04:35 ) *
ohhh... albo bez js mozesz
dadac warunki w if ktora sprawdza ilosc znakow... oczywiscie w pliko wykonywalnym znaczy sie tam gdzie ... dochodzi do pobrania danych z bazy
przy takim zastosowaniu jest mozliwosc... rozszezania o wiele wiecej... ale tzreba pogłowkowac


Oczywiście że jest taka możliwość, ale tutaj sprawdzenie masz od razu na stronie z formularzem i wydaje się być to bardziej odpowiednie do tego typu zastosowań. Poza tym Twój post niczego nie wnosi: coś tam wiem, ale nie powiem...


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
Neeke
post
Post #5





Grupa: Zarejestrowani
Postów: 124
Pomógł: 16
Dołączył: 22.02.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(uli @ 27.03.2007, 12:08:25 ) *
Poza tym Twój post niczego nie wnosi


Sorki juz pprzeedytowalem... i juz jest podane rozwiazanie ....



A co do js... jak ktos sie niezna w tym to i tak niezrozumie.. qaa chyba wazne jest to by bylo zrozumiale... ale wybor i tak nalezy do... mtskilla
Go to the top of the page
+Quote Post
babejsza
post
Post #6





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Poza tym jeżeli JS będzie wyłączony w przeglądarce to nic nie sprawdzi. W sumie to najlepiej dla usera dać sprawdzanie i tu i tu.

@Neeke - co to za zapis??

Cytat
$minimum='3';$max='90';


liczb nie trzeba obejmować w apostrofy, a dobrym zwyczajem jest wręcz używanie takiej składni:

  1. <?php
  2. $min = (int)3;
  3. ?>


Nie jest to oczywiście wymagane, ale w ten sposób nabierasz dobrych nawyków winksmiley.jpg.
Go to the top of the page
+Quote Post
Neeke
post
Post #7





Grupa: Zarejestrowani
Postów: 124
Pomógł: 16
Dołączył: 22.02.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(babejsza @ 27.03.2007, 14:46:34 ) *
@Neeke - co to za zapis??
  1. <?php
  2. $min = (int)3;
  3. ?>
No wiedze dowiedziales sie ze to są ilosci znakow tongue.gif a co do Twojej metody... to racja... jest to tez poprawny zapis... ale ja z przyzwyczajenia i z pamieci lecialem piszac tego posta... dlatego napisalem tak a nie inaczej:) pozdrawiam
Go to the top of the page
+Quote Post
mtskilla
post
Post #8





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 17.01.2007

Ostrzeżenie: (0%)
-----


Dzieki wielkie za pomoc. Wybralem php. ale mam takie pytanie. jak wchodze na strone to automatycznie mi liczy ile jest liter wpisanych w formularz i jest ich zero i wypisuje za malo liter. jak sie tego pozbyc? nadac wartosc poczatkową mojego x? nie wiem.
Go to the top of the page
+Quote Post
uli
post
Post #9





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

Ostrzeżenie: (0%)
-----


Pokaż kod, który sprawdza warunek i wypisuje komunikat.

@temat: Poniżej był mój post, który usunąłem bo jakoś dziś nie mam kojarzenia. Przepraszam smile.gif

Ten post edytował uli 30.03.2007, 11:37:04


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
siemakuba
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Wystarczy jeden moment więcej poświęcić na myślenie...

Sprawdź najpierw, czy formularz został przesłany (isset" title="Zobacz w manualu PHP" target="_manual, empty" title="Zobacz w manualu PHP" target="_manual).
Jeżeli tak, sprawdź długość liter.
Jeżeli za mała -> komunikat.
Jeżeli OK -> pobierasz dane i wyświetlać.

Tu nawet nie potrzebna jest nie wiadomo jaka wiedza z php, ale trochę logicznego myślenia ;)

pozdr.
Go to the top of the page
+Quote Post
mtskilla
post
Post #11





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 17.01.2007

Ostrzeżenie: (0%)
-----


Jest wyzej napisany ale ok:
  1. <?php
  2. $min = (int)3;
  3. $max = (int)90;
  4.  
  5. $dlugosc=strlen($x); // x jest "wypostowane" z inputa
  6. if (($dlugosc>=$max)or($dlugosc<$min)) {
  7.  
  8. echo "za malo literek";
  9.  
  10. } 
  11.  
  12.  else 
  13.  {
  14. }
  15. ?>


siemakuba wystarczy czytac cale tematy i troche logicznego myslenia. nie wiem czy zauwazyles ale napisalem w pierwszym poscie to samo co ty w tym swoim. tylko poprostu nie wiedzialem jak sprawdzic ilosc liter wiec zapytalem. pozdr
Go to the top of the page
+Quote Post
Neeke
post
Post #12





Grupa: Zarejestrowani
Postów: 124
Pomógł: 16
Dołączył: 22.02.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Mozesz uzyć funkcji IsSet" title="Zobacz w manualu PHP" target="_manual o ktorej wyrzej masz mowe i przekierowanie do manuala....
i to chyba najlepsze rozwiazanie....
ale zawsze mozesz okazac nam wycinek formulaza.... z ktorego sa dane pobierane....
Wsumie niepowinno... Ci tak dzialać jezeli przezucasz do ineego pliku... kttory wykonyje ta operacje... chyba ze masz ten skrypt ... wpisaany w tym samym pliku wtedy .. owszem odrki ci Zadziala... ja polecam "IsSet"
  1. <?php
  2. if(IsSet('submit')) {
  3. ?>


Jak dobrze pamietam.. to wtaki sposob sie urzywalo isSeta ale sprawdz manuala:)

Ten post edytował Neeke 30.03.2007, 11:37:51
Go to the top of the page
+Quote Post
siemakuba
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Cytat(mtskilla @ 30.03.2007, 11:51:27 ) *
ale mam takie pytanie. jak wchodze na strone to automatycznie mi liczy ile jest liter wpisanych w formularz i jest ich zero i wypisuje za malo liter. jak sie tego pozbyc? nadac wartosc poczatkową mojego x? nie wiem.


Tak. Logicznego myślenia, masz rację.
Ustosunkowałem się do tego co wyżej.

Cytat
Jak dobrze pamietam.. to wtaki sposob sie urzywalo isSeta ale sprawdz manuala:)

Tak, sprawdź manual ;)


pozdr.
Go to the top of the page
+Quote Post
Neeke
post
Post #14





Grupa: Zarejestrowani
Postów: 124
Pomógł: 16
Dołączył: 22.02.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Przejdz sie mtskilla do manuala....
Go to the top of the page
+Quote Post
mtskilla
post
Post #15





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 17.01.2007

Ostrzeżenie: (0%)
-----


przeszedłem i zrobilem to isset'em i teraz wszystko pieknie smiga. dzieki wielkie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 17:14