Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL]praca z bazami danych
Larges
post 14.05.2008, 14:50:02
Post #1





Grupa: Zarejestrowani
Postów: 333
Pomógł: 16
Dołączył: 13.05.2008
Skąd: Łódź

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


Witam,
mam taki problem.
Chcę przejżeć konkretną tabelę bazy danych i zliczyć w niej ilość pól danej kolumny

przykład
Tabela "Kamil"
"ID"
"monety"
"banknoty"
chce zliczyć liczbę pól z rekordami przypisanymi do np "monety"

Jest jakaś funkcja do tego?
Z góry dziękuję i pozdrawiam.


--------------------
Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
potreb
post 14.05.2008, 15:05:38
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


  1. <?php
  2. $fields = mysql_list_fields('baza', 'tabela', $link);
  3. $columns = mysql_num_fields($fields);
  4.  
  5. for ($i = 0; $i < $columns; $i++) {
  6. $pole = mysql_field_name($fields, $i);
  7. $ilosc = mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM $pole"));
  8. echo("Rekordów w polu $pole jest<b> ".$ilosc[0]);
  9.  
  10. }
  11. ?>


Moze zadziała

Ten post edytował potreb 14.05.2008, 15:07:51


--------------------

Go to the top of the page
+Quote Post
PiXel2.0
post 14.05.2008, 16:19:19
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 16.03.2007
Skąd: Łódź

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


Cytat(potreb @ 14.05.2008, 16:05:38 ) *
  1. <?php
  2. $fields = mysql_list_fields('baza', 'tabela', $link);
  3. $columns = mysql_num_fields($fields);
  4.  
  5. for ($i = 0; $i < $columns; $i++) {
  6. $pole = mysql_field_name($fields, $i);
  7. $ilosc = mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM $pole"));
  8. echo("Rekordów w polu $pole jest<b> ".$ilosc[0]);
  9.  
  10. }
  11. ?>


Moze zadziała

Takie cos nie ma prawa zadzialac poniewaz zapytanie bedzie probowalo odszukac tabele o nazwie pola... dry.gif

Poza tym i tak kazda tabela ma konkretna ilosc rekordow a nie inna dla kazdego pola wiec nie do konca rozumiem o co chodzi autorowi tematu questionmark.gif blinksmiley.gif

Aby uzyskac ilosc rekodrow tabeli nalezy postapic tak:
  1. <?php
  2. $result = mysql_query('SELECT COUNT(*) FROM tabela');
  3. $data = mysql_fetch_row($result);
  4. echo "W tabeli znajduje sie {$data[0]} rekordow";
  5. ?>


Aby uzyskac ilosc zapisanych pol dla kazdej kolumny (czyli gdzie wartosc komorki jest inna niz NULL) mozna uzyc czegos takieg:
(uwaga, kod pisany "z palca", nie sprawdzalem czy dziala...)
  1. <?php
  2. $result = mysql_list_fields('baza', 'tabela');
  3. $num_fields = mysql_num_fields($result);
  4. for($i = 0; $i < $num_fields; $i++){
  5.  $field_name = mysql_field_name($result, $i);
  6.  $c[] = "COUNT({$field_name}) AS {$field_name}";
  7. }
  8. $counts = implode(', ', $c);
  9. $result = mysql_query("SELECT {$counts} FROM tabela");
  10. $fields = mysql_fetch_array($result, MYSQL_ASSOC);
  11. foreach($fields as $field_name => $rows)
  12.  echo "{$field_name} - {$rows}<br />";
  13. ?>


Ten post edytował PiXel2.0 14.05.2008, 16:26:34
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 17:18