Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] PDO COUNT row
Forum PHP.pl > Forum > Przedszkole
tabbi
Witam,

chce zwrócić ilość wierszy w zapytaniu PDO, mam klase i cały czas zwraca mi wartość TRUE; chodz ogólnie zapytanie i sprawdzenie ifem daje negatywny wynik. Łączy mi z PDO bo już dodałem kilka rekordów do bazy.

  1. Class Comment{
  2.  
  3. var $idObiektu; // id obiektu gdzie beda się wyswietlac komentarze
  4. var $sessionTableName="comment";//nazwa tabeli gdzie sa komentarze
  5. var $DB; //laczenie sie z baza danych
  6.  
  7. //konstruktor klasy komentarzy - laczenie sie z baza danych i sprawdzanie czy istnieje id_obiektu
  8. function __construct($parm,$id_obiektu){
  9.  
  10. $this->idObiektu=$id_obiektu; //wskaznik do id obiektu
  11.  
  12. //sprawdzamy czy parm jest tablica
  13. if(!is_array($parm)){
  14.  
  15. return false;
  16.  
  17. }else{
  18. $this->Parm=array(); //parametry db
  19.  
  20. $this->Parm['DBHost'] = $parm['DBHost'];
  21. $this->Parm['DBName'] = $parm['DBName'];
  22. $this->Parm['DBLogin'] = $parm['DBLogin'];
  23. $this->Parm['DBPass'] = $parm['DBPass'];
  24. $this->Parm['DBType'] = $parm['DBType'];
  25.  
  26. //Uruchamianie połączenia z bazą danych - PDO
  27. try
  28. {
  29. $this->DB = new PDO($this->Parm['DBType'].':dbname='.$this->Parm['DBName'].';host='.$this->Parm['DBHost'], $this->Parm['DBLogin'], $this->Parm['DBPass']);
  30. $this ->DB-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  31. }
  32. //Wyświetlanie błędów wrazie niepowodzenia uruchamiania rozszerzenia
  33. catch(PDOException $e)
  34. {
  35. echo $e->getMessage();
  36. }
  37.  
  38. //sprawdzanie czy istnieje takie id_obiektu jeśli nie to zwracam false i jest pusta lista komentarzy, jeśli true to wyświetla komentarze
  39. $this->Check($id_obiektu);
  40. }
  41. }
  42.  
  43. //Sprawdzanie czy istnieja takie komentarze nalezace do danego id_obiektu
  44. function Check($id_obiektu){
  45.  
  46. $zatwierdz=1;
  47. //zapytanie sql zwraca TRUE FALSE
  48. $result=$this->DB->prepare("
  49. SELECT
  50. COUNT(*)
  51. FROM
  52. ".$this->sessionTableName."
  53. WHERE
  54. id_obiektu = :id_obiektu and
  55. zatwierdz = :zatwierdz
  56. ");
  57. $result->bindParam(':id_obiektu', $id_obiektu, PDO::PARAM_STR);
  58. $result->bindParam(':zatwierdz', $zatwierdz, PDO::PARAM_INT);
  59. $result->execute();
  60. //Tutaj prawidlowo zwraca wartosc 0
  61. $ilosc=$result->fetch();
  62. //Czy zapytanie sie powiodlo
  63. if($ilosc[0]>8){
  64.  
  65. return true;
  66.  
  67. }else{
  68.  
  69. return false;
  70.  
  71. }
  72. }


Sprawdzenie:

  1. $com = new Comment(&$sess_param,$id_obiektu);
  2. if($com){
  3. echo 'zapytanie zwraca wartosc true';
  4. $ip=$_SERVER['REMOTE_ADDR'];
  5. $tresc="asd";
  6. $nick="adam";
  7. //$com->Add($tresc, $nick, $ip);
  8. }


Ciagle wykonuje mi zapytanie IF
nospor
$com = new Comment(&$sess_param,$id_obiektu);
if($com){
przeciez $com to obiekt, nic wiec dziwnego ze ci ten IF zawsze jest prawdziwy
chyba chciales napisac:
if($com->Check($id_obiektu)){

ps: przenosze
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.