![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 8.06.2005 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam następujący problem. Napisałem sobie funkcje, która z kilku tabel wyciąga jedną wartość i to działa ładnie, zapytanie zwraca taki wynik: Kod +---+---+---+ | a | b | c | +---+---+---+ | 1 | 1 | 3 | +---+---+---+ | 4 | 1 | 1 | +---+---+---+ | 5 | 1 | 1 | +---+---+---+ | 1 | 2 | 3 | +---+---+---+ | 4 | 2 | 1 | +---+---+---+ | 5 | 2 | 1 | +---+---+---+ | 1 | 3 | 3 | +---+---+---+ | 4 | 3 | 1 | +---+---+---+ | 5 | 3 | 1 | +---+---+---+ a i b to wartości pobierane bezpośrednio z bazy danych, c to wartość pobierana z funkcji, i teraz moje pytanie - dlaczego jeśli przyrównam b z c(z funkcją to zwracane są tylko 2 wartości? 4-1-1 i 5-1-1, powinna zostać zwrócona jeszcze wartość 1-3-3 w końcu tu też b-c! Ps. Przepraszam za mało precyzyjny temat, ale nie wiedziałem jak to zatytułować. Ten post edytował krun 30.06.2008, 00:47:54 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
pokaż to porównanie - pokaż tą funkcję - mamy wrózyć z fusów czy z tej tabelki co pokazałeś (to się chyba nazywa numerologia czy jakoś tak...)
![]() -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 8.06.2005 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Funkcja wygląda tak:
Zapytanie tak
A tabele tak:
Ale dziwne dla mnie jest to, że 3 != 3! Przepraszam za natarczywość, ale bardzo zależy mi na odpowiedzi. Ma ktoś pojęcie czym mój problem może być spowodowany? Ten post edytował krun 30.06.2008, 00:52:07 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
szczerze mówiąc wszystko wydaje sie być ok. ... dziwne...
co prawda twoja funkcja zwraca liczbę typu int(11) którą porównujesz z polem id typu int(10) unsigned ... ale zasadniczo nie powinno to mieć znaczenia dla wyniku porównania, na wszelki wypadek jednak spróbuj zmienić funkcję tak, żeby też zwracała int(10) unsigned ... a drugie podejrzenie, to dwukrotne wywołanie twojej funkcji w każdym wierszu zapytania ... teoretycznie nie powinno mieć to wpływu na rezultat ale na pewno nie jest wydajne... spróbuj zmienić zapytanie na coś w rodzaju:
-------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 8.06.2005 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Sprawdziłem, nie działa. Ale najdziwniejsze jest to, że jak porównuje to z liczbami wprowadzonymi ręcznie czyli znajdz_id_wyslanego()=2 to też jest to falsz. działa tylko w przypadku liczby 1. Ktoś zna możliwy powód?
Druga sprawa drugie podejrzenie, to dwukrotne wywołanie twojej funkcji w każdym wierszu zapytania ... teoretycznie nie powinno mieć to wpływu na rezultat ale na pewno nie jest wydajne... spróbuj zmienić zapytanie na coś w rodzaju:
To nie działa, Cytat Nie znaleziono kolumny 'znalezione_id' w where clause. Ale przy pojedynczym wywołaniu funkcji też nie zwraca tych wyników które powinien, więc na pewno nie jest to wina podwójnego wywołania a mój błąd gdzieś w funkcji.. Tylko kto mi powie jaki? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 121 Pomógł: 15 Dołączył: 19.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 8.06.2005 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Czy w definicji funkcji `znajdz_id_wysylanego` nie powinenes przypadkiem uzywac zmiennych o identyfikatorach poprzedzonych znakiem @? Tj.
Pozdrawiam Nie wydaje mi się. Dlaczego miałbym ich używać? Problem rozwiązał się właściwie sam... Na innym systemie próbowałem wrzucić tą funkcje i zostałem poproszony o dodanie do niej dwóch linijek:
Sama funkcja powinna wyglądać tak:
Dziękuje wszystkim którzy starali się mi pomóc. Ten post edytował krun 30.06.2008, 00:53:15 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 20:26 |