Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zliczanie rekordow, powtorka z rozrywki :)
invx
post
Post #1





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


Witam

szukam pomyslu na zapytanie SQL do MySQL'a, zeby zliczyc rekordy, ale mam dosc dziwna strukture

Kod
|id|id_|id_b|nt|
|1 |1  |4   |1 |
|2 |1  |0   |0 |
|3 |1  |0   |0 |
|4 |4  |1   |1 |
|5 |4  |0   |0 |
|6 |4  |0   |0 |
|7 |7  |3   |1 |
|8 |7  |0   |0 |
|9 |9  |3   |1 |
|10|9  |0   |0 |
|11|11 |4   |1 |
|12|12 |4   |1 |
|13|12 |0   |0 |
|14|12 |0   |0 |


i z takiej tabelki potrzebuje zliczyc ile jest rekordow ktore maja id_b = podanej zmiennej i nt=1 (np. 4) i takich, ktore maja id_ rowne wartosci id tego poprzedniego rekordu (czyli maja id_b = podanej zmiennej i nt=1 (np. 4)). Czy da sie to w jednym zapytaniem ? bo z dwoma pewnie bym cosik sam wykombinowal tongue.gif.

dzieki

P.S.
przyklad: podaje ze chce rekordy ktorych id_b=4; wiec znajduje ten rekord, odczytuje ze id_ = 1 i szukam innych ktore maja id_=1, zliczam je. smile.gif


--------------------
RCXcms
www.rcx.prv.pl
Pierwszy polski w pełni zintegrowany system portal
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




  1. SELECT count(*)
  2. FROM tabela WHERE (id_b=4 AND nt=1) OR id_ IN (SELECT id_
  3. FROM tabela WHERE id_b=4 AND nt=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
invx
post
Post #3





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


niedziala ...

"#1064 - Something is wrong in your syntax obok 'select id_
from forum_c)' w linii 3
"
  1. SELECT count(*)
  2. FROM tabela WHERE (id_b=4 AND nt=1) OR id_ IN (SELECT id_
  3. FROM tabela WHERE id_b=4 AND nt=1)[/SLQ]
  4.  
  5. z tego co zauwazylem TO koncowka zapytania jest chyba zla [sql]OR id_ IN (SELECT id_
  6. FROM tabela WHERE id_b=4 AND nt=1)

bo kaze wyszukac takie id_ gdzie id_b=4 i nt=1.
a zauwaz ze pola z id_ ktore chce wyszukac jako id_b i nt maja 0, wiec nic ...
ale jak to wytne to errora i tak zglasza. Dane w bazie sa.


--------------------
RCXcms
www.rcx.prv.pl
Pierwszy polski w pełni zintegrowany system portal
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Masz mysqla w wersji min 4.1? Zeby miec obsluge podzapytan.
Wyjasnij troche jasniej o co ci chodzi, co chcesz uzyskac, jakie masz dane wejsciowe (wartosci id i nt ).


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
invx
post
Post #5





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


niewydajnie w pare zapytaniach, udalo mi sie to zrobic tak:

  1. <?php
  2. /*Zliczanie ilości postów*/
  3. $ilosc2 = "SELECT * FROM forum_c WHERE id_b='".$forum_b['id']."' AND nowy_temat=1";
  4. $wykonaj5 = mysql_query ( $ilosc2 );
  5. while( $posty = mysql_fetch_array( $wykonaj5 ) )
  6. {
  7. $ilosc3  = "SELECT * FROM forum_c WHERE id_='".$posty['id_']."'";
  8. $wykonaj6 = mysql_query( $ilosc3 );
  9. $ilosc_id_= mysql_num_rows( $wykonaj6 );
  10. $suma_id_ = $suma_id_ + $ilosc_id_;
  11. }
  12. $suma_id_b = mysql_num_rows( $wykonaj5 );
  13. $iloscposty = $suma_id_;
  14. //zerowanie sumy, przy przejściu do kolejnego id_b
  15. $suma_id_  = 0;
  16. /**/
  17.  
  18. ?>


i jak by ktos mial pomysl jak to usprawnic


--------------------
RCXcms
www.rcx.prv.pl
Pierwszy polski w pełni zintegrowany system portal
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 Aktualny czas: 20.08.2025 - 20:16