Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Problem ze zliczniem
andrzej7322
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


Witam,
Mo problem polega na tym, że mam takie zapytanie
  1. SELECT * FROM produkty WHERE id IN("1,2,1,2")
i to zapytanie wyświetla mi produkty ktore mają id 1 i id 2 chciałbym teraz żeby wyswietliło mi w taki sposob ze produktow o id1 jest 2 sztuki i produktow o id 2 jest tez dwie sztuki.Myślałem nad zliczniem powtarzających sie wartości w tablicy ale nie potrafię tago zrobić już dwa dni nad tym siedzę i nie moge nic wymyślić.
Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Raczej
select count(id) from produkty where id in(1,2) group by id
Go to the top of the page
+Quote Post
andrzej7322
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


Właśnie chodzi o to że mam produkty zapisane w ten sposob w mysql ze ktos zamowił
  1. ID|NAZWA|STATUS|PŁATNOŚĆ|DOSTAWA|PRODUKTY

i produkty które ktoś zamawia mam w takiej postaci 1,2,3,4,5,1,2,1 i dlatego stworzyłem takie zapytanie tylko że musze jakoś napisać jak 2 razy sa produkty o id 1 to wyświetla, że dwie sztuki produktu o id 1
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Moja pomyłka (IMG:style_emoticons/default/haha.gif)

  1. SELECT count(id) AS ile FROM tabela WHERE id IN("") GROUP BY ile
Go to the top of the page
+Quote Post
andrzej7322
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


To zapytanie nie działa ponieważ nie mam takiego argumentu jak ile
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




No bo grupuje się po ID a nie po ile. Mysl troszeczke. Pomine juz fakt, ze odpowiedź dostales w temacie co ci zamknalem (IMG:style_emoticons/default/winksmiley.jpg)
  1. SELECT id, count(id) AS ile FROM tabela GROUP BY id
Go to the top of the page
+Quote Post
andrzej7322
post
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


to zapytanie zliczy mi wszystkie rekordy w tabeli o np id= 1 i 2, ami chodzi o to zeby zliczyc jak mam taki warunek
  1. WHERE id IN("1,2,1,2")
ile jest 1 i ile jest 2 ze np. zamowilem 2 sztuki produktu o id 1 i dwie sztuki o id2 chodzi mi o to ile razy w powtarza sie dane id w warunku zapyatnia
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




no to dodaj ten warunek do zapytania powyzej
Go to the top of the page
+Quote Post
andrzej7322
post
Post #9





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


Gdy dam ten warunek to zapytanie wygląda tak
  1. SELECT count(id) AS ile FROM produkty WHERE id IN(".$produkty.") GROUP BY id

gdzie $produkty = 1,2,1,2 bo ktoś zamowił dwie sztuki produktu o id 1 i dwie sztuki produktu o id 2i chodzi o t ze pozniej chce otrzymac
  1. while($row=mysql_fetch_array($zapa)){
  2. echo '<tr><td class="a"><p>Produkt:'.$row['nazwa'].'</p></td>';
  3. echo'<td class="a"><p>Ilość sztuk:</p></td></tr>';
  4. }
no i chcę napisać ile on tych sztuk zamówił
a tabela produkty to jest tbela ze wszystkimi produktami i z tamtad wyciagam tylko nazwe produktu a z tej zmiennej $produkty muszę wyćiągnąć ilość sztuk w ten sposób chyba ile razy sie powtarza dana liczba

Ten post edytował andrzej7322 26.06.2010, 14:51:14
Go to the top of the page
+Quote Post
bemol
post
Post #10





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


a nie lepiej stworzyć pole int, w którym będziesz przechowywał ilość sztuk. Trochę nielogicznie masz to rozwiązane, jeśli id się powtarza.
Go to the top of the page
+Quote Post
andrzej7322
post
Post #11





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


Mam stworzona tabele w bazie zlecenia i ona wyglada mniejwiecej tak
  1. ID|NAZWA|STATUS|PŁATNOŚĆ|DOSTAWA|PRODUKTY

w produkty przechowuję id zamówionych produktów no i pożniej chce to pogrupować i obliczyć sztuki zamówionego produktu o danym id
Go to the top of the page
+Quote Post
nospor
post
Post #12





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




aaa, to ty produkty masz jako tekst w polu? zły pomysl

Stworz tabelę wiązącą gdzie bedziesz przechowywal id

ID_ZAMOWIENIA | ID_PRODUKTU

dzieki temu wszelkie operacje będzie łatwiejsze i logiczniejsze.
Go to the top of the page
+Quote Post
andrzej7322
post
Post #13





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


Nad tym myślałem o wiele wcześniej tylko myślałem też że można to inaczej rozwiązać tak jak jest teraz ale jeśli nie można to będe musiał tak zrobić bo nie chciałem zaśmiecaj bazy danych chciałem mieć wszystko w jednym rekordzie. Znalazłem takie coś żeby te id produku do tablicy wrzucic i jest taka funkcja ktora obliczba ile razy dana wartosc sie powtorzyła tylko nie potrafię póżniej z tablicy to przerobić na to aby wyświetlało mi tak jak to przedstawiłem powyżej tzn.
  1. while($row=mysql_fetch_array($zapa)){
  2. echo '<tr><td class="a"><p>Produkt:'.$row['nazwa'].'</p></td>';
  3. echo'<td class="a"><p>Ilość sztuk:</p></td></tr>';
  4. }


Ten post edytował andrzej7322 26.06.2010, 15:00:34
Go to the top of the page
+Quote Post
nospor
post
Post #14





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




Cytat
bo nie chciałem zaśmiecaj bazy danych chciałem mieć wszystko w jednym rekordzie
No wlasnie rozwiązanie co ci podalem to nie jest zasmiecanie. Tak wlasnie tworzy się prawidłowo bazy danych.
Tak więc jesli masz jeszcze okazję i mozliwosc to popraw to.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 00:11