Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]zapytanie mysql
Forum PHP.pl > Forum > Przedszkole
neo1986kk
Witam mam taki maly problem z zapytaniem mysql. chodzi o to że nie wiem jak zadać pytanie.

1|a|uzytkownik
2|a|uzytkownik2
3|a|uzytkownik3
4|b|uzytkownik4
5|a|uzytkownik5
6|b|uzytkownik6

tak wyglada mniejwiecej moja tabelka, i teraz chciałbym sprawdzić jakie jest najmniejsze ID dla każdego z tematów, żeby zobaczyć który użytkownik go zapoczątkował.

Zacząłem w ten sposób

  1. $zapytanie=mysql_query("select min(id) from table....")


no wlasnie i chyba tu nie moge tego tak zostawić dlatego że on mi wybierze najmniejsze ID z całej tabeli
a ja chce najmniejsze ID z a i z b, czyli po zapytaniu powinno wyświetlić

a uzytkownik
b uzytkownik4

Proszę o pomoc bo nie mam juz pojęcia jak to zrobić.
Daimos
Cytat(neo1986kk @ 4.06.2010, 12:44:55 ) *
kolumna_1|kolumna_2|kolumna_3
1|a|uzytkownik
2|a|uzytkownik2
3|a|uzytkownik3
4|b|uzytkownik4
5|a|uzytkownik5
6|b|uzytkownik6

  1. SELECT DISTINCT kolumna_2,kolumna_3 FROM tabela WHERE costam ORDER BY kolumna_1 ASC

tak z palca, ale powinno dzialac, jak nie to dokladnie, to juz wiesz jak kombinowac winksmiley.jpg
neo1986kk
no wlasnie najgorsze jest to cos tam, bo cos tam = min(id), ale to min(id) powinno być przy każdym kolumna_2 ,a nie na całą tabelę.
misiek172
może spróbuj użyć GROUP BY
neo1986kk
przeciez on grupuje bo wybraniu rekordu, wydaje mi się ze tu nie wystarczy jedno zapytanie.

najpierw musze wybrac wszystkie tematy więc wyświetli mi $zmienna= a i $zmienna=b, a pozniej

select min(id) where temat=$zmienna

i teraz mam min id z a i min id z b i moge znaleźć kto je dodał dobazy:)
thek
Neo... On NIE grupuje! Widziałeś w zapytaniu GROUP BY?Poradzili Ci grupowanie i bardzo dobrze zrobili. Zrób grupowanie po kolumna_2 i wyświetl sobie co Ci pokaże. Grupowanie ma taką specyficzną własność, że wyświetli dla wystąpienia pierwszy rekord tabeli jaki z nim się wiąże patrząc od początku. Jeśli chciałbyś ostatni - byłby mały problem, bo musiałbyś posortować wpierw tabelę zanim ją do grupowania posłałbyś, ale tak to nie problem:
  1. SELECT kolumna_2,kolumna_3 FROM tabela GROUP BY kolumna_2
Problem jest gdybyś miał w tabeli te dane chaotyczne i pierwsze wystąpienie nie byłoby pierwszym postem. Wtedy w części FROM musiałbyś posłać odpowiednio posortowaną tabelę wpierw, ale o tym wspomniałem przy okazji grupowana właśnie dla ostatniego postu w temacie.
neo1986kk
ale ja nie chce wyswietlac pierwszego tematu tylko policzyc ile tematów dodal uzytkownik.

group by dziala tak ze sprawdza mi ile jest wpisow gdzie dodal uzytkownik, i ok zgadzam sie z tym ze wyswietlił by mi tylko pierwszy, ale num_rows i tak liczy pozostałe.

Ok zrobiłem tak że wybrałem wszystkie tematy, zgrupowałem je i ze zgrupowanych wybrałem takie które dodal uzytkownik, więc


na przykladzie po zgrupowaniu zostają nam 2 tematy

1a
2b

teraz sprawdzam czy uzytkownik ktory dodal to aktualnie zalogowany uzytkownik i zliczam liczbę zwróceń true:)
Dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.