Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Jak policzyć rekordy w PDO
vegeta
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

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


Witam.

Korzystam z PDO i nie wiem jak policzyć rekordy w tabeli np. ID.
Go to the top of the page
+Quote Post
zordon
post
Post #2





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


najlepiej policzyć już w zapytaniu mysql:
http://dev.mysql.com/doc/refman/5.0/en/gro...#function_count
a jak się uprzesz to pobierasz wszystkie wiersze do tablicy i liczysz jej elementy:
http://pl.php.net/manual/en/function.count.php
Go to the top of the page
+Quote Post
Daiquiri
post
Post #3





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Skorzystać z example 2?

Ten post edytował Daiquiri 27.09.2010, 15:30:22
Go to the top of the page
+Quote Post
vegeta
post
Post #4





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

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


Co mi z policzenia w zapytaniu jak ja chcę policzyć wszystkie ID (bo np. niektore id usuwalem) i wyswietlic ich ilosc.

Mam kod:

Kod
<?php
$stmt = $pdo -> query('SELECT `login` FROM `user` ORDER BY `id` desc limit 0,01');
foreach($stmt as $row)
{
echo 'Witamy najnowszego użytkownika, którym jest <b>'.$row['login'].'</b>! Jest on naszym X userem.<br />';
}
echo 'Mamy X piosenek oraz X wykonawców.';
?>


Byłbym wdzięczny za wyszukanie błędów bezpieczeństwa w skrypcie.

Ten post edytował vegeta 27.09.2010, 16:26:19
Go to the top of the page
+Quote Post
zordon
post
Post #5





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


albo ja mam kłopoty z czytaniem ze zrozumieniem, albo Ty. Musieliśmy Cię źle zrozumieć, bo zarówno moje podpowiedzi, jak i kolegi realizują to zadanie. Co do tego ma czy usuwałeś jakieś ID? Jak usunąłeś z bazy to ich tam nie ma - nie zostaną policzone...

jak chcesz kombinować jak koń pod górę to przekształć sobie swój fragment kodu na coś w stylu:
  1. $stmt = $pdo -> query('SELECT `login` FROM `user` ORDER BY `id` desc limit 0,01');
  2. $licznik = 0;
  3. foreach($stmt as $row)
  4. {
  5. echo 'Witamy najnowszego użytkownika, którym jest <b>'.$row['login'].'</b>! Jest on naszym '.++$licznik.'userem.<br />';
  6. }
  7. echo 'Mamy X piosenek oraz X wykonawców.';
Go to the top of the page
+Quote Post
vegeta
post
Post #6





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

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


Spoko już zrozumiałem.

  1. $stmt = $pdo -> query('SELECT COUNT(id) FROM user');
  2. $stmt2 = $pdo -> query('SELECT login FROM `user` ORDER BY `id` desc limit 0,01');
  3. foreach($stmt2 as $row2)
  4. foreach($stmt as $row)
  5. {
  6. echo 'Witamy najnowszego użytkownika, którym jest <b>'.$row2['login'].'</b>! Jest on naszym '.$row['COUNT(id)'].' userem.<br />';
  7. }
  8. $stmt -> closeCursor();
  9. $stmt2 -> closeCursor();
  10.  
  11. $stmt3 = $pdo -> query('SELECT COUNT(id), COUNT(wykonawca) FROM `ch`');
  12. foreach($stmt3 as $row3)
  13. echo 'Mamy '.$row3['COUNT(id)'].' piosenek oraz '.$row3['COUNT(wykonawca)'].' wykonawców.<br />';
  14. $stmt3 -> closeCursor();


Teraz proszę o wskazanie ewentualnych błędów bezpieczeństwa i czy można to jakoś uprościć. Jak zrobić, żeby przy liczeniu wykonawcy liczyło tylko różne od siebie wartości, a nie wszystko z kolumny wykonawca? Np. mam 2x Dżem i chcę, aby liczyło mi to tylko raz.

Ten post edytował vegeta 27.09.2010, 20:43:20
Go to the top of the page
+Quote Post
!*!
post
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Pogrupowałbym to poprzez
Kod
GROUP BY group_id
Jednak co robisz imo źle, to ilość zapytań. Im mniej ich zrobisz, tym będzie to bardziej wydajne.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
vegeta
post
Post #8





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

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


Co byś pogrupował?

Co do zapytań to mógłbym wsadzić SMTP i SMTP2 w jedno, ale mam tam wybieranie ostatniego elementu ID. Chyba, że macie inne pomysły jak to połączyć.
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: 21.08.2025 - 01:12