![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 23.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam poniższy skrypcik.
Nie ważne co wpisze zawsze pojawia się ten sam komuniakat "TAK". Wiem, że błąd tkwi w zapytaniu lub w if, albo tu i tu. Kombinowałam na wszystkie sposoby i nic. Proszę o pomoc.
Ten post edytował terreska 5.11.2006, 09:27:56 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 15.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Masz zapytanie ale nie wysyłasz go.
mysql_query |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 23.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie rozumiem. Co i gdzie muszę wpisać?
Ten post edytował terreska 5.11.2006, 09:51:53 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
po pierwsze masz zapytanie ($query), ale nigdzie go nie wykonujesz (np. mysql_query), także $query jest "zwykłym" stringiem.
po drugie znaczek "=" jest operatorem przypisania, w Twoim przypadku wyrażenie:
przyjmie wartość '%$by%', które w if'ie jest zawsze prawdą. Operatorem porównania jest np. '==' Może napisz co chciałaś osiągnąć? Ten post edytował TomASS 5.11.2006, 09:57:12 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 23.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Teraz mam tak i znów jest to samo. Co teraz jest źle?
Chcę sprawdzić czy określony wpis znajduje się w bazie czy nie. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
W zasadzie to zobacz co zwraca mysql_query.
Powiedz co chcesz osiągnąć? Dlaczego masz takie zapytanie: ? Może powinno być:
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
mysql_num_rows sprawdz ile rekordow zwroci zapytanie i wtedy jak bedzie = 0 to daj ze nie ma takiego wpisu
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 23.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ok, dziękuję teraz działa, ale nie do końca dobrze...
W bazie znajduje się przykładowo słowo "telewizor". Gdy wpiszę telewizor, tele, albo nawet samą litere występującą w tym wyrazie to wyświetli mi, że jest wpis. Jak zrobić, aby tylko szukał pełnych nazw w bazie? Ten post edytował terreska 6.11.2006, 10:59:43 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 309 Pomógł: 0 Dołączył: 6.06.2006 Skąd: include('root/europe/ poland/szczecin.php'); Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 23.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Że też sama na to nie wpadam... (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
Dziękuje. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
A nie lepiej
? Dodatkowo, możesz określić zamiast * tylko niezbędne pola - powinno to przyspieszyć zapytanie. Spróbuj też zabezpieczyć swój skrypt przed atakami SQL Injection np. przy pomocy mysql_escape_string, ale to już osobny temat. |
|
|
![]() ![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 6.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
z tego co wiem wielkosc liter w zapytaniu sql nie ma znaczenia, chociaz sam uzywam wielkich dla wyeksponowania polecen, no a nazwy tabel pisze w `ciapkach`. co do * to sie zgodze, lepiej jej nie stosowac. powinno sie raczej wymieniac interesujace elementy. to ma wplyw na ' jakosc ' zapytania. mysql_real_escape_string tez jest przydatne - zgadzam sie. polecam. pozdro.
Ten post edytował Kangu 7.11.2006, 11:30:16 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
z tego co wiem wielkosc liter w zapytaniu sql nie ma znaczenia, chociaz sam uzywam wielkich dla wyeksponowania polecen, no a nazwy tabel pisze w `ciapkach`. co do * to sie zgodze, lepiej jej nie stosowac. powinno sie raczej wymieniac interesujace elementy. to ma wplyw na ' jakosc ' zapytania. mysql_real_escape_string tez jest przydatne - zgadzam sie. polecam. pozdro. Za bardzo nie przyzwyczajaj się do tego, że "wielkość liter w zapytaniu sql nie ma znaczenia" oraz "nazwy tabel pisze w `ciapkach`" - gdy będziesz musiał skorzystać z PostgreSQL, zrozumiesz dlaczego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
@Kangu :
Oczywiście nie chodzi o wielkość liter, lecz o samo wykonanie zapytania:
vs
to pierwsze jest zdecydowanie szybszym rozwiązaniem. Powiem nawet więcej - do wyszukiwania najlepiej chyba nadaje się użycie poleceń match() i against():
Co do wielkich liter oraz do brania nazw tabel/pól w "ciapki" to ja zdecydowanie preferuje style jaki panuje na mysql.com. Wielkie literki + brak ciapek. Cytat co do * to sie zgodze, lepiej jej nie stosowac. Słyszałem, że nawet wyliczenie wszystkich pól jest szybsze niż stosowanie *, aczkolwiek na pewno mniej wygodne. Cytat Za bardzo nie przyzwyczajaj się do tego, że "wielkość liter w zapytaniu sql nie ma znaczenia" oraz "nazwy tabel pisze w `ciapkach`" - gdy będziesz musiał skorzystać z PostgreSQL, zrozumiesz dlaczego Nie znam się za bardzo na PostgreSQL, ale przeglądając to forum można natrafić np. na takie zapytanie gdzie nie ma żadnego ujmowania w "ciapki" (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Pozdrawiam Ten post edytował TomASS 7.11.2006, 23:12:27 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 19:12 |