![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Witam. Borykam się z problemem stronicowania. Chcę dodać warunek do zapytania i wciąż mam błąd:
Chciałbym dodać warunek wykluczający wyświetlanie artykułów, gdzie:
Co nie wymodzę, mam błąd składni zapytania. Chciałbym tez pozbyć się SQL_CALC_FOUND_ROWS * na rzecz COUNT(*)... -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Zobacz w którym miejscu masz WHERE, a w którym powinno być
-------------------- Jeśli ten post pomógł to kliknij przycisk
![]() Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ... |
|
|
![]()
Post
#3
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Powinno być tak:
Ale: Gdy wpiszę warunek WHERE tut_stan=1, wyświetlają mi się wyniki, gdzie tut_stan=0! Gdy wpiszę warunek WHERE tut_stan=0, wyświetlają mi się wyniki, gdzie tut_stan=0, lecz nie wszystkie... Gdy wpiszę warunek WHERE tut_stan<>0, wyświetlają mi się wyniki gdzie tut_stan=1, ale zliczy mi wszystkie wyniki. Gdy wpiszę warunek WHERE tut_stan<>1, wyświetlają mi się wyniki gdzie tut_stan=1, ale zliczy mi wszystkie wyniki. -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jaką masz strukturę tych tabel?
-------------------- Jeśli ten post pomógł to kliknij przycisk
![]() Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ... |
|
|
![]()
Post
#5
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tylko, że w zapytaniu są używane dwie tabele, a dałeś strukturę jednej.
-------------------- Jeśli ten post pomógł to kliknij przycisk
![]() Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ... |
|
|
![]()
Post
#7
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Druga, to tylko kategorie:
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Gdy wpiszę warunek WHERE tut_stan=1, wyświetlają mi się wyniki, gdzie tut_stan=0! Niemożliwe.Pokaż może przykładowe dane czy coś podobnego. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jednak możliwe.
to nie jest liczba więc, trzeba użyć apostrofów
Ten post edytował mariuszli 13.06.2010, 20:34:53 -------------------- Jeśli ten post pomógł to kliknij przycisk
![]() Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ... |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@mariuszli w tym co piszesz być może i jest racja.
Nie widzę natomiast większego sensu w tym co zrobil Kshyhoo. PO grzyba robić enum z wartości 0 i 1? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Nie widzę natomiast większego sensu w tym co zrobil Kshyhoo. PO grzyba robić enum z wartości 0 i 1? To jest tak, jednemu podoba się żona innemu teściowa... Gdzie nie wejdę na jakieś forum, są zwolennicy jakiegoś rozwiązania, promujący i zachwalający swoje teorie. To rozwiązanie jest właśnie efektem takiej przygody na forum http://www.forumweb.pl. Chodziło mi o najlepsze rozwiązanie dla włączony/wyłączony. Wcześniej używałem innych rozwiązań. To obecne ma być ponoć mniej pamięciożerne. Podobnie z SQL_CALC_FOUND_ROWS * bo ponoć COUNT(*) jest niby wydajniejsze (http://mariusz.turek.salon404.pl/post/4,my...ws-kontra-count)... Ja jednak nie mogę poradzić sobie z przejściem na COUNT(*).
@mariuszli, Twoje rozwiązanie okazało się trafne, za co otrzymasz ode mnie wielkiego + -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat To jest tak, jednemu podoba się żona innemu teściowa... Ale tu nie ma co się podobac lub nie podobać. To co teraz robisz to tak jakbyś używał chlebaka do trzymania w nim chlebaka...ja rozumiem używać ENUM dla wartości "włączony" i "wyłączony" - po to enum powstało. Ale mi się z celem uzywać enum dla wartości "0" i "1". Rownie dobrze zrób sobie pole TINYINT i trzymaj tam 0 i 1. Będzie to jeszcze mniej pamięciożerne od tego enum co teraz zrobiłes ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Pisząc to porównanie, nie miałem na myśli siebie... Jestem początkujący, gdy nie wygoogluję nic konkretnego, szukam pomocy na forach. To ENUM jest wynikiem wizyty tu - no i poszedłem za radą. Zresztą zobacz sobie 7 post na w/w stronie, jakie mają zdanie o Tobie
![]() EDIT. Dodam jeszcze, że żyję w przeświadczeniu, że polscy programiści sporo potrafią ale niechętnie dzielą się swoją wiedzą z innymi a już szczególnie za friko. Rozumiem, że lepiej dać komuś wędkę niż rybę, ale dobrze też pokazać łowisko... Ten post edytował Kshyhoo 14.06.2010, 15:54:42 -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Zresztą zobacz sobie 7 post na w/w stronie, jakie mają zdanie o Tobie Masz na myśli ten tekst:Cytat Ten gosc to kafar ? Nom, przejąłem się... ![]() Cytat że nie ma dobrego źródła, gdzie można by nauczyć się "porządnego" php - sam manual nie wystarcza a kursy traktują raczej lakonicznie niektóre rzeczy. No i dlatego tłumaczę ci w tym temacie że stosowanie ENUM w tym przypadku jest bez sensu ![]() Cytat Dodam jeszcze, że żyję w przeświadczeniu, że polscy programiści sporo potrafią ale niechętnie dzielą się swoją wiedzą z innymi a już szczególnie za friko. Wydawało mi się, ze na naszym forum jestes stałym gościem, a tu widzę taką opinię... ludzie to codziennie dzielą się swoją wiedzą za darmo. A to że często dają wędkę zamiast ryby - uwierz, to tylko dla waszego dobra.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Ja też bym się nie przejmował. Internet to takie medium, że nie sposób natrafić na wszechwiedzących najlepiej zadufanych w sobie dupków. Ten przykład podałem jedynie po to, żeby pokazać, że im więcej znaczysz, więcej możesz oberwać...
Co do ENUM, wcześniej miałem (mam stare zrzuty bazy):
a jeszcze wcześniej:
Człowiek uczy się na błędach - szkoda tylko, że na swoich ;( Największy problem to język - niestety, uczęszczałem do szkoły w czasie, gdy Polska była zapatrzona daleko i ślepo na wschód - a manuale są po angielsku... -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
dobra, jutro uporządkuję ci tę tabelę trochę. teraz idę spac.
ps: czyzbyś był starszy ode mnie? eee, nie ![]() edit: no to jedziem. Na początek drobne uwagi na podstawie kodu co pokazałeś - jak coś jest liczbą to masz tam wkładać liczbę a nie tekst. czyli nie '0', '1' ... a: 0, 1 ... - jak coś jest datą, to pole ma być typu datowego (DATE,TIME,DATETIME, TIMESTAMP) a nie int - jak liczba nie jest ZEROFILL to podawanie np. int(11) niczemu nie służy. samo int wystarczy - jak coś jest auto_increment, i to coś jest też unikalne, to znaczy ze to jest klucz głowny. rób więc z tego klucz główny - jak coś ma przyjmowac małe liczby, to rób z tego tinyint - nie rób enum z wartosci liczbowych. to sie mija z celem. Jak chcesz robic to rób z wartości tekstowych, wtedy ma to sens. - mogłbys się pokusic o typ INNOD_DB zamiast MyIsam - móglbys robić wówczas relacje. No ale to narazie zostawmy - twórz indexy na polach, które będą brały udział np. w wyszukiwaniach - jesli pole będzie miało tylko dodatnie liczby, dodawaj UNSIGNED
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]()
Post
#17
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Uuuu, ale konkretów. To może i ja pokomentuję:
- jak coś jest datą, to pole ma być typu datowego (DATE,TIME,DATETIME, TIMESTAMP) a nie int Jak już pisałem, miałem problemy w przetwarzaniem daty i teraz zapisuję to po prostu tak: To samo z czasem edycji:
A potem:
Funkcja (szczerze mówiąc, "kwietnia" przekłamuje:
- jak liczba nie jest ZEROFILL to podawanie np. int(11) niczemu nie służy. samo int wystarczy No to łapię... - jak coś jest auto_increment, i to coś jest też unikalne, to znaczy ze to jest klucz głowny. rób więc z tego klucz główny Tego nie łapię - myślałem, że właśnie to wykorzystuję... - jak coś ma przyjmowac małe liczby, to rób z tego tinyint Czyli na ID kategorii lub ID_kto_edytuje się nada - ja miałem smallint... - jak coś jest liczbą to masz tam wkładać liczbę a nie tekst. czyli nie '0', '1' ... a: 0, 1 ... - nie rób enum z wartosci liczbowych. to sie mija z celem. Jak chcesz robic to rób z wartości tekstowych, wtedy ma to sens. W sumie, mógłbym się pokusić o trzymanie w ENUM, wystarczyło by zmienić co nieco w formularzu, bo teraz mam: - mogłbys się pokusic o typ INNOD_DB zamiast MyIsam - móglbys robić wówczas relacje. No ale to narazie zostawmy Tak, żart się udał ![]() - twórz indexy na polach, które będą brały udział np. w wyszukiwaniach Tematu wogóle nie łapię, mam co prawda wyszukiwarkę spłodzoną, ale wzorowałem się na php-fusion... - jesli pole będzie miało tylko dodatnie liczby, dodawaj UNSIGNED To już wiedziałem, ale mogłem przeoczyć. I na koniec: ps: czyzbyś był starszy ode mnie? eee, nie ![]() Wiek: Kobiet i nospora o wiek się nie pyta ![]() ![]() -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Jak już pisałem, miałem problemy w przetwarzaniem daty To problemy nalezy rozwiązywać a nie omijać. Taką metodą daleko nie zajdziesz. ![]() funkcje do daty w mysql http://dev.mysql.com/doc/refman/5.1/en/dat...-functions.html funkce od daty w php http://pl.php.net/manual/pl/ref.datetime.php Jak sobie sam nie bedziesz radził to wal na forum. Kodu co pokazałeś z datami to nie rozumiem o co w nim biega więc póki co się nad nim nie zastanawiam. Jakiś taki skomplikowany się wydaje ![]() Cytat poprawię - mam rozumieć, że kod php pozostanie ten sam? takCytat - jak coś jest auto_increment, i to coś jest też unikalne, to znaczy ze to jest klucz głowny. rób więc z tego klucz główny No nie. Ty powiedziales tylko ze pole jest autoincrement i ze jest unikalne. Zas by ogreslic kłócz główny, uzywa sie PRIMARY KEY - zawiera ono między innymi z definicji unikalnośćTego nie łapię - myślałem, że właśnie to wykorzystuję... Cytat - jak coś ma przyjmowac małe liczby, to rób z tego tinyint No nie do konca. Jesli kategorii lub osob (kto_edytuje) będzie więcej niż 255 to musisz dac większy typ. Musisz patrzec ile czego może być.Czyli na ID kategorii lub ID_kto_edytuje się nada - ja miałem smallint... Cytat - twórz indexy na polach, które będą brały udział np. w wyszukiwaniach Indexy służą do szybszego wyszukiwania informacji w bazie danych. Nigdy nie zaglądałeś do spisu treści w ksiązce? To jest właśnie taki index. Zresztą ksiązki naukowe oprócz spisu tresci mają też normalny index - dzięki temu szybciej znajdujesz informacje na temat tego czego szukasz. W bazie danych jest podobny mechanizm. Jesli więc tworzysz wyszukiwarkę, to dobrze jest załozyc indexy na pola po których wyszukujesz - dzieki temu zapytanie szybciej zwróci wynikTematu wogóle nie łapię, mam co prawda wyszukiwarkę spłodzoną, ale wzorowałem się na php-fusion... Cytat ps: czyzbyś był starszy ode mnie? eee, nie No nie wiem ile ty masz lat, ale ja do szkoły też za komuny chodziłem.Wiek: Kobiet i nospora o wiek się nie pyta Ale swoje lata już mam. Serio?? Cytat `tut_moderator` text NOT NULL, //CZEMU TU MASZ TEXT ? - hmmm, TO ma BYć nick dodającego Hmmm, to nick moderatora bedzie: askjdhkajshdjkashkdjhasjkhdjkashdkjhakjssssssssssssssssssssssshdkjashdkjsahdkjha skjdhkjashdkjashdkjhaskjdhaskjhdkashdjashkdjhsakjdhaskjhdkashdhaskdjhasjkdhjkash d kjashdkjsahdjkashdjkahsdjkhaskjdhaskjdhaskjhdjashdkjashdkfkjsdfjksahfjksdahfkjsd h fkjshdkfjhsdkjfhskjdhfskjhfskjdfhskjdhfskjdhfksjdhfksjdhfjksdhfsdjkfhskjfhskjhfs j kashfkjshfsjdf ? Naprawdę tam musi być TEXT? Nie może byc varchar(32) ? A najlepiej żeby był tam ID moderatora. Jego nick wyciągniesz z tabeli ludków. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#19
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Mój wiek, to żadna tajemnica - 43... mam w profilu.
Jak znajdę trochę czasu (po 16 miesiącach znalazłem robotę), pozmieniam kod. Indeksowaniem zajmę się przy wyszukiwarce. Co do nicku moderatora (w zasadzie redaktora) - Administrator zakłada konto a skrypt sprawdza nick, więc nikt mi nie namiesza: Ponadto, nick jest pobrany z bazy przy zapisie artykułu do bazy i służy jedynie dla informacji admina - oczywiście mógłbym zapisywać tylko ID... -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#20
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Mój wiek, to żadna tajemnica - 43... mam w profilu. Dobra, aż tak stary nie jestem ![]() Cytat Administrator zakłada konto a skrypt sprawdza nick, więc nikt mi nie namiesza: Tu nie chodzi o namieszanie, ale o ideę
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 16:07 |