![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 472 Pomógł: 8 Dołączył: 14.03.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Witam,
W tableli mam pola miedzy innymi stanowisko, miasto Stanowisko moze przyjmowac wartosci 'asystent' lub 'kierownik' Czy da sie za jednym zapytaniem zliczyc ilosc asystentów i ilosc kierowników z jednego określonego miasta? -------------------- I need TP for my bunghole!!!
Mój nowy przyjaciel - tytanowa płytka na stałe ------------------------------------------------------ AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
group by:
http://dev.mysql.com/doc/refman/5.0/en/select.html count() http://dev.mysql.com/doc/refman/5.0/en/gro...-functions.html i wszystko jasne ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 472 Pomógł: 8 Dołączył: 14.03.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie
![]()
I jeszcze pytanie: Czy nie bylo by bardziej wydajenie aby pole stanowisko przyjmowało wartosci 1 lub 0 gdzie 0- kierownik a 1 - asystent i stanowisko byloby typu int ? Jak tak to dlaczego, jak nie to dlaczego i jak wszytko jedno to dlaczego? ![]() Ten post edytował cornholio666 31.05.2006, 11:29:50 -------------------- I need TP for my bunghole!!!
Mój nowy przyjaciel - tytanowa płytka na stałe ------------------------------------------------------ AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
..., a w chwili obecnej jakiego typu masz pole w ktorym trzymasz stanowisko? Jezeli ma przyjmowac 0 lub 1 to zmien nawet nie tyle co INT ale na TINYINT(1).
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 472 Pomógł: 8 Dołączył: 14.03.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Mam typu varchar i jak jest kierownikiem to wpisuje 'kierownik' a jak asystentem to 'asystent'.
Cytat Jezeli ma przyjmowac 0 lub 1 to zmien nawet nie tyle co INT ale na TINYINT(1). No tak ale czy mam zmieniac na tinyint czy nie? i dlaczego? -------------------- I need TP for my bunghole!!!
Mój nowy przyjaciel - tytanowa płytka na stałe ------------------------------------------------------ AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To wsyzstko zalezy od tego, czy ci bedzie potrzebny tekst: kierownik, asystent... czy tych stanowisk bedzie wiecej.
Zazwyczaj takie dane, nazywa sie slownikami. Tworzy sie dla nich dodatkową tabele i wniej trzyma sie wszystkie stanowiska: kierownik, asysystent, sekretarka, .... i wiele wiecej. W glownej tabeli tworzy sie pole, ktore jest kluczem obcym do slownika stanowisk. Pole to jest tego samego typu co id w slowniku, zazwyczaj jest to INT. Ale w zaleznosci od tego, ile tych danych bedzie, sa to rozne rozmiary inta. jesli tobie zalezy tylko na rozroznieniu: kierownik - asystent , to wal pole TINYINT(1), gdyz ma ono najmniejszy rozmiar i zajmie mniej miejsca. Jesli tych stanowisk bedzie wiecej, to zaloz se slownik i nadaj dla ID takie typ inta, ile bedzie max danych. Ot cala filozofia ![]() edit: jak to czytam jeszcze raz to nie wiem czy mnie zrozumiales ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 472 Pomógł: 8 Dołączył: 14.03.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Tabela stanowiska
id | stanowisko (int) | ------------------------ 0 | dyrektor | 1 | kieronik | 2 | sekretarka | Tablea dane id | cos | cos2 | id_stanowiska (int)| ----------------------------------------- 0 | sss | gggg | 0 | -> dyrektor 1 | ggg|fgggg | 2 | -> sekretarka 2 | hhh| jjjjjj | 1 | -> kierwonik o to chodzi ? -------------------- I need TP for my bunghole!!!
Mój nowy przyjaciel - tytanowa płytka na stałe ------------------------------------------------------ AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
dokladnie. aczkolwiek nie polecam zaczynac id od 0
![]() -------------------- "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: 472 Pomógł: 8 Dołączył: 14.03.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Cytat nie polecam zaczynac id od 0 Moze zdradzisz mi tą tajemnice? ![]() -------------------- I need TP for my bunghole!!!
Mój nowy przyjaciel - tytanowa płytka na stałe ------------------------------------------------------ AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ponadto radze aby nazwy polom id nadawac wedlug wzoru tabela dane -> id_dane, tabela stanowiska -> id_stanowiska. W takiej sytuacji masz ulatwione zadanie przy tworzeniu nazwy klucza obcego w tabeli dane. Tabela dane badzie miala nastepujace pola id_dane, cos, cos2 id_stanowiska - i wszystko jasne.
-- edit -- Wartosc 0 moze zostac potraktowana jak false i skrypt zadziala niezgodnie z oczekiwaniami. Zreszta np. autoincrement zawsze zaczyna od 1 i to jest wystarczajacy powod aby sie tej zasady trzymac. Ten post edytował bigZbig 31.05.2006, 12:58:54 -------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Moze zdradzisz mi tą tajemnice? Żadna tajemnica. Poprostu nie polecam, jestem sponsorowany przez inną liczbę i nie wypada mi polecac zera, bo to konkurencja ![]() Z zerem są problemy chociazby przy eksporcie i imporcie danych. Zalozmy ze masz pole primary_key auto_increment. Tabela zawiera juz rekordy o id 0,1,2,3.... robisz teraz eksport tabeli do sql. Nastepnie robisz import tego sql. I jakies bedzie Twoje zdziwienie, gdy dostaniesz errory w stylu: Cytat Duplicate entry '1' for key 1 A czemu? ano temu, ze Twj sql bedzie wygladal powiedzmy tak:
no i wbrew pozorom, pierwszy insert nie wstawi wartosci 0 do ID, ale zostanie to potraktowane jakby byl tam null i zostanie wstawiona nastepna wartosc auto_incrementa, czyli przy zerowej bazie: 1. No i teraz nastepny insert chce wlozyc ID 1 i jest problem, gdyż ID 1 juz istnieje -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 30.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli ta lista stanowisk jest w miarę stała i uaktualniana tylko przez Ciebie to chyba lepiej będzie w celach wyświetlania nazwy stanowiska stworzyć taki słownik w samym php w postaci tablicy, np
Zaoszczędziesz w ten sposób LEFT JOINa którego byś musiał użyć przy pobieraniu danych w celu ich wyświetlenia. Jeśli te stanowiska są konfigurowalne przez innych użytkowników np poprzez jakiś panel admina wtedy nie masz innego wyboru jak umieszczenie tego w bazie i łączenie tabel. Ten post edytował KG- 31.05.2006, 16:13:13 |
|
|
![]()
Post
#13
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
@bigZbig Mam uwage do tego co piszesz.
Cytat Ponadto radze aby nazwy polom id nadawac wedlug wzoru tabela dane -> id_dane, tabela stanowiska -> id_stanowiska. W takiej sytuacji masz ulatwione zadanie przy tworzeniu nazwy klucza obcego w tabeli dane. Tabela dane badzie miala nastepujace pola id_dane, cos, cos2 id_stanowiska - i wszystko jasne. Jesli fkey ma byc nadawany to przynajmniej rob tak jak nalezy nazwa tabeli_id Przyklad dane_id. Polecam np poczytac o ORM -------------------- |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 285 Pomógł: 18 Dołączył: 30.01.2014 Skąd: <?=$_GET['city']?> Ostrzeżenie: (0%) ![]() ![]() |
Mały odkop (podobne pytanie), można zliczyć jakoś kilka wartości kolumn?,
próbowałem tak ale nie działa...
-------------------- Jak poprawnie zadać pytanie || Generator #RRGGBB || Kurs: php, mysql <> html & css || Hosting || Validator: html, css || Narzędzia dla programistów |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zamien COUNT na SUM (oprocz pierwszego)
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 285 Pomógł: 18 Dołączył: 30.01.2014 Skąd: <?=$_GET['city']?> Ostrzeżenie: (0%) ![]() ![]() |
Zamien COUNT na SUM (oprocz pierwszego) Dzięki, Działa!! Mam nadzieję że ktoś z odpowiednimi uprawnieniami kliknie tobie "pomógł" jako że odpowiadałeś mi ale nie w moim temacie. -------------------- Jak poprawnie zadać pytanie || Generator #RRGGBB || Kurs: php, mysql <> html & css || Hosting || Validator: html, css || Narzędzia dla programistów |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 18:01 |