![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 29.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
witam.
Mam sobie tabelke ogloszenia_ogl. Jest tam kilka pól charakteryzujących produkt , kategorie w ktorej sie znajduje oraz aktywnosc. Poczatkowo pole akcept bylo set ('0','1') wszystko dzialalo pieknie na zapytanie :
Liczylo wszystkie rekordy aktywne z kategorii i podkategorii $k. Postanowilem wprowadzic 3 wartosc do komorki akcept. Ustawilem ja SET('0','1','2'). W tym momencie wszystko sie posypalo. Zapytanie zaczelo zwracać rekordy niezależnie od pola akcept. Teraz zmieniłem poraz kolejny na int(2) - caly czas jest źle. Baza jest wypelniona paroma rekordami wiec niespecjalnie wiem co zrobić, najchętniej bym ją skasował i zaczął od nowa, ale to raczej nie wchodzi w gre. Co ciekawe jesli to zapytanie wkleje do phpmyadmina to dziala poprawnie , jednak w skrypcie w ogole nie bierze pod uwagę pola akcept, zupelnie jakby go nie bylo. php Version 4.4.1 mysql Client API version 4.1.12 adodb 4.65 a kawelek kodu wyglada tak:
najlepsze jest to jak potem wyswietlam te wyniki i kaze pytam where akcept='1' to on pokazuje mi wszystkie rekordy, i przy kazdym wyswietlam ile wynosi akcept to pokazuje 1. jesli spytam sie :
to pokazuje cos innego niz
Czy to możliwe żeby baza się sypła? Jak skopiowałem tę tabelę to zapytanie wcale nie chce działać w adodb(zwraca blad), w phpmyadmin działą Spotkał się ktoś z czymś takim i wie jak to ugryźć ? Z góry dzięki za pomoc. ps mam nadzieje że w dobrym dziale pisze... Ten post edytował mihauu 10.02.2006, 15:28:53 -------------------- forum dla nauczycieli | dodaj stronę do katalogu | teksty piosenek |
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat(mihauu @ 2006-02-10 16:28:17) jesli spytam sie :
to pokazuje cos innego niz
Pierwsze zapytanie zwróci wyniki gdzie pole akcept jest równe STRINGowi 1. Zapytanie drugie zwróci rekordy gdzie pole akcept zawiera LICZB 1. Cytat Postanowilem wprowadzic 3 wartosc do komorki akcept. Ustawilem ja SET('0','1','2'). Na pewno SET('0','1','2') a nie SET(0,1,2) ? -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 29.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
tak na pewno ustawiałem je SET('0','1','2')
tylko że potem zmieniłem na int(2) bo myślałem że to pomoże - jak widać nie pomogło. -------------------- forum dla nauczycieli | dodaj stronę do katalogu | teksty piosenek |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 15.09.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Czy użycie typu SET jest faktycznie konieczne, tzn. czy istnieje ogłoszenie, które będzie miało wartośc kolumny 1,2? Jeśli nie, to lepiej wykorzystać typ ENUM. Nigdy nie natrafiłem na problemy z typem ENUM, jeśli tylko traktowałem jego wartość jako string, a nie liczbę, tj. pisałem '1' a nie 1.
-------------------- tort
eX Blog |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
hmm... wlasnie mi coś nie pasowalo.Nie wiem czmeu, ale nie zauważylem że używasz tam SET... zamień to na ENUM, tak jak pisal tort, jest to znacznie lepsze rozwiązanie.
O ile sę nie myle, to zresztą SET ma troszke inne zastosowanie. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 15:45 |