Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql]Zliczanie wybranych rekordów
Forum PHP.pl > Forum > Przedszkole
jastu
Proszę o podpowiedź :

jest tabela która ma pole id ale nie jest PRIMARY KEY (wartości się powtarzają).
Potrzebna jest mi pętla która sprawdzi czy w polu id dana wartość powtórzyła więcej niż 10 razy.
thanks!
nospor
@jastu ale moglbys sie troche wysilic....
Zobacz na Forum php.pl
dowiedziales sie tam o takim cudzie jak: group by, having, count(*)
te trzy rzeczy wlasnie wystarcza ci do rozwiazania Twego problemu
edit: pomijam juz takie podstawy jak: select, from, where smile.gif
jastu
Problemu z tworzeniem prostych zapytań nie mam, chodzi o coś innego.
Skrypt pobiera pierwszą wartość z pola ID i sprawdza ile razy występuje ona w innych rekordach kolumny ID - jeśli zliczy wyświetla tą wartość i pobiera kolejną wartosć z pola ID pomijając tą poprzednią . Mam nadzieję że nie jestem w błędzie worriedsmiley.gif

może jakoś tak - sortuję tabelę wg pola ID , biorę najmniejsze ID do skryptu i zliczam ile razy występuje ,ID++ i jeszcze raz zliczam aż do największego ID w kolumnie
nospor
no przeciez ci tlumacze... group by. pomysl troche na podstawie analizy swoich pozostalych topicow.
  1. SELECT ID, count(ID) ilosc
  2. FROM tabela
  3. GROUP BY ID

a jak dorobic warunek na wieksze od 10 to juz pomysl i poczytaj manuala i skorzystaj z podpowiedzi co ci udzielilem wczesniej
jastu
  1. <?php
  2.  
  3. $r=mysql_query("select ok_id_zgl,count(ok_id_zgl) from ok group by ok_id_zgl ;");
  4.  
  5. for($i=1;$i<=mysql_num_rows($r);$i++)
  6. {
  7. $ilosc=@$f[count(ok_id_zgl)];
  8. $wiersz=@$f[ok_id_zgl];
  9.  if($ilosc>10)
  10.  {
  11.  $wykonaj = mysql_query ("update zgloszenia set grupa='oc3' where id_zgl='$wiersz' ;");
  12.  }
  13.  
  14. }
  15.  
  16.  
  17. ?>

Jeszcze jedno tak BTW - dlaczego zawsze muszę dopisywać małpę tzn. @$f[count(ok_id_zgl)];
questionmark.gif Jak nie dopiszę to działa ale najpierw mam linię z błędem
Pozdr
nospor
Cytat
dlaczego zawsze muszę dopisywać małpę

A kto ci kaze? smile.gif
manual, manual i jeszcze raz manual:
http://pl.php.net/manual/pl/language.opera...rrorcontrol.php

a blad ci wywala, bo indexy textowe trzeba podawac w ciapkach '':
  1. <?php
  2. $ilosc=$f['count(ok_id_zgl)'];
  3. ?>

reszta podobnie

edit: a ten warunek:
if($ilosc>10)
to w zapytaniu mogles zrobic jak pisalem, ale oczywiscie nie chcialo sie poszukac... smile.gif
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.