Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] SELECT - zdefiniowanie jednego pola + gwiazdka
Majkelo23
post 8.11.2013, 07:38:36
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

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


Witam!

Potrzebuję wyciągnąć z tabeli w bazie bez wyjątku, wszystkie pola dla id = 1. Zapytanie w tym wypadku powinno wyglądać tak:
  1. SELECT * FROM `tabela` WHERE id = 1;


jednak ja potrzebuję od razu zamienić adres IP z INT'a na zwykły, czyli: INET_NTOA(`user_lastip`)

I co w tym wypadku? Jak to zapisać?
Ten sposób:

  1. SELECT INET_NTOA(`user_lastip`), (*) FROM `tabela` WHERE id = 1;


sypie błędami.

Ten post edytował Majkelo23 8.11.2013, 07:39:28
Go to the top of the page
+Quote Post
nospor
post 8.11.2013, 07:40:37
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A po grzyba gwiazdke wziales w nawias?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Majkelo23
post 8.11.2013, 07:41:41
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

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


Nie ma to znaczenia, bez nawiasu też wypluwa ten sam błąd.
Go to the top of the page
+Quote Post
nospor
post 8.11.2013, 07:43:28
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




SELECT `tabela`.*, INET_NTOA(`user_lastip`) FROM `tabela` WHERE id = 1;


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Majkelo23
post 8.11.2013, 07:48:41
Post #5





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

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


hm, cholera. Błędu niby już nie ma, ale jak echuję wartość pola user_lastip to zwraca mi dalej formę int'ową, zamiast zwykłej. Czego to może powód?
Go to the top of the page
+Quote Post
nospor
post 8.11.2013, 07:50:31
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




SELECT `tabela`.*, INET_NTOA(`user_lastip`) as noweip FROM `tabela` WHERE id = 1;

Twoja wartosc bedzie teraz pod indeksem noweip


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Majkelo23
post 8.11.2013, 08:00:43
Post #7





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

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


Faktycznie, nie pomyślałem, aby zapisać to pod inną nazwą, dziękuję.
Teraz wyświetla adres IP, jednak błędny (cały czas ten sam), mianowicie: 127.255.255.255
A ja próbowałem dodać do bazy już trzy różne adresy, mimo to wartość powyższa nie zmienia się.

Dodawanie wygląda tak:
  1. UPDATE `tabela` SET user_lastip = INET_ATON('192.168.0.1') WHERE id = 1;


i tak jak mówię, mogę tam wstawić zupełnie inny adres IP, a i tak printuje mi cały czas ww. adres IP.

EDIT:

Moje pole w bazie to INT(20) z atrybutami NOT NULL DEFAULT 0.

Ten post edytował Majkelo23 8.11.2013, 08:02:52
Go to the top of the page
+Quote Post
nospor
post 8.11.2013, 08:10:23
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Widac masz inne wartosci niz ci sie wydaje.... wyswietl sobie dokladnie user_lastip jakie masz i zobaczysz


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Majkelo23
post 8.11.2013, 08:15:35
Post #9





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

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


Edytując zapytanie na takie:

  1. UPDATE `tabela` SET user_lastip = '192.168.0.1' WHERE id = 1;


i zamiana pola z INT na VARCHAR, do bazy wrzuca się prawidłowa wartość, czyt. 192.168.0.1
Nie wiem jak to jest możliwe.

EDIT:

Wszystko działa, chodziło o to, że dodatkowo pole INT musiało mieć nadane UNSIGNED. Teraz śmiga, dziękuję.

Ten post edytował Majkelo23 8.11.2013, 08:15:55
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 Wersja Lo-Fi Aktualny czas: 12.06.2025 - 20:22