ďťż
Podstrony
|
telcocafeWitam, jak w temacie. Jak sprawdzić, czy dany rekord istnieje? Moja wersja:$pdo = Database::getInstance(); $sth = $pdo->query('SELECT * FROM `news`'); $count = $sth->fetchColumn(); if($count>0) echo 'true'; else echo 'false'; Ładne, nieładne, fajne, niefajne? Użytkownik Isaac from Vale edytował ten post 30 czerwiec 2010, 13:51 gdybym sprawdzał, czy istnieje co najmniej jeden rekord pasujący do warunków zapytania, dodałbym na końcu 'LIMIT 1'. jeśli jednak chciałbym policzyć ile jest rekordów pasujących do warunków - to zapytanie wyglądałoby mniej więcej tak: SELECT COUNT(*) FROM tabela WHERE liczba >= 3 Może lekko zboczę z tematu, ale jaka jest najlepsza metoda używając PDO, aby policzyć ilość pobranych rekordów? Chodzi mi o to, aby uzyskać wynik w postaci liczby całkowitej. Użytkownik Isaac from Vale edytował ten post 30 czerwiec 2010, 16:14 Może lekko zboczę z tematu, ale jaka jest najlepsza metoda używając PDO, aby policzyć ilość pobranych rekordów? Chodzi mi o to, aby uzyskać wynik w postaci liczby całkowitej. Rzutuj wartość z COUNT na inta ;) Jak dobrze pamiętam to coś w stylu (int)$zmienna To będzie rozwiązanie bardziej delikatne dla mysql niż pierw select count a potem fetchColumn z tego? ;) private function getGuests() { $guests = $this->pdo->query('SELECT COUNT(*) FROM `statistics` WHERE UNIX_TIMESTAMP()-`time`<60'); return (int)$guests; } Notice: Object of class PDOStatement could not be converted to int in D:\Programy\xampp\htdocs\OO\Core\Components.php on line 102 taka linijka zresztą nie działa niestety. Użytkownik Isaac from Vale edytował ten post 30 czerwiec 2010, 23:14 Trochę się wysil i debuguj problem. $guests to obiekt z wynikiem zapytania, a nie sam wynik. print_r($guests); i zobaczysz jak dostać się do wyniku. PDOStatement Object ( [queryString] => SELECT COUNT(*) FROM `statistics` WHERE UNIX_TIMESTAMP()-`time`<60 ) Za wiele mi to nie mówi ;) Bo żeś nawet nie wykonał tego zapytania. Myśl trochę a nie "nie działa = forum". Riklaunim, wiem, że masz dobre intencje, ale to nie jest tak, że ja nie spróbowałem rozwiązać przedstawionego problemu. Rozwiązałem go i działa. Wykonuję zapytanie a funkcja fetchColumn zwraca mi wartość wierszy. Moje posty wynikały raczej z chęci dowiedzenia się, czy istnieją rozwiązania lepsze, jeśli tak to jak one wyglądają. Dajesz mi wskazówki, próbuję je wykorzystać i coś nie wychodzi, dlatego dalej zadaję pytania. "Bo żeś nie wykonał tego zapytania." A co robi funkcja query? Myślałem, że właśnie wykonuje zapytanie... PDO::query â Executes an SQL statement, returning a result set as a PDOStatement object Definicja prosto z manuala... |
|||
Sitedesign by AltusUmbrae. |