Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nie moge pobrac liczby wierszy zapytania
Forum PHP.pl > Forum > PHP
abcd
Nie wiem co robię źle sad.gif

Klasa Polaczenie:
  1. <?php
  2. $polacz;
  3. public function __construct()
  4.    {
  5.       $this->polacz = mysql_connect(...........);
  6.       mysql_select_db('baza', $this->polacz);
  7.       $this->query("SET NAMES latin2");
  8.    }
  9.  
  10. public function zapytanie($sql)
  11.    {
  12.       return mysql_query($sql, $this->polacz);
  13.    }
  14. ?>


Klasa Ksiazka:
  1. <?php
  2. public function ileKsiazek()
  3.    {
  4.       $polaczenie = new Polaczenie();
  5.       $sql = "SELECT * FROM ksiazki WHERE tytul = 'jjj'";
  6.       $zapytanie = $polaczenie->zapytanie($sql);
  7.       $liczba_wierszy=$zapytanie->num_rows;
  8.  
  9.       return $liczba_wierszy;
  10.    }
  11. ?>


Nic nie jest zwracane, co robię źle ?
tanwel_programmer
Cytat(abcd @ 22.03.2009, 15:59:23 ) *
Nie wiem co robię źle sad.gif

Klasa Polaczenie:
  1. <?php
  2. $polacz;
  3. public function __construct()
  4.    {
  5.       $this->polacz = mysql_connect(...........);
  6.       mysql_select_db('baza', $this->polacz);
  7.       $this->query(&#092;"SET NAMES latin2\");
  8.    }
  9.  
  10. public function zapytanie($sql)
  11.    {
  12.       return mysql_query($sql, $this->polacz);
  13.    }
  14. ?>


Klasa Ksiazka:
  1. <?php
  2. public function ileKsiazek()
  3.    {
  4.       $polaczenie = new Polaczenie();
  5.       $sql = &#092;"SELECT * FROM ksiazki WHERE tytul = 'jjj'\";
  6.       $zapytanie = $polaczenie->query($sql);
  7.       $liczba_wierszy=$zapytanie->num_rows;
  8.  
  9.       return $liczba_wierszy;
  10.    }
  11. ?>


Nic nie jest zwracane, co robię źle ?



Na moje oko to nie ma prawa działąć ponieważ robisz coś co można nazwać "sztywnym łączem do bazy danych" co wogule takie nie przypomina. Sprubuj coś takiego: (piszę od reki więc mogę zrobić literówe)
CODE



/*Klasa obsługi połączenia.*/


class klasa{
public function __construct(){
$Baza="localhost"; //przykłądowo.
}
public function query($sql){ //metoda do wykonania zapytania
$polaczenie=mysql_connect($Baza,"user","password")or die("Nie mogę się połączyć sad.gif"); //połączenie z bazą danych
mysql_select_db("baza",$polaczenie)or die("nie mam takiej bazy sad.gif"); //wybór bazy
$Wynik=mysql_query($sql, $polaczenie) or die("Wystąpił błąd ".mysql_error()); //funkcja mysql_error() zwraca komunikat w razie błędu.
mysql_close($polaczenie); //Pamiętaj o zamykaniu połączenia ! silnik robi to automatycznie tylko jeżeli jest tak skonfigurowany , jeżeli nie kożystasz z CGI to możesz zrobić przepełnienie !.
return($Wynik); // no i zwrot wyników .
} //koniec metody query.
}// koniec klasy/


Wywołąnie takiej metody możesz zrobić np tak:
CODE

$Polaczenie= new klasa(); //deklaracja zmiennej obiektowej
$Wynik=$Polaczenie->query("SELECT * FROM `Tabela`"); // Tu wykoanie zapytania
whille($W=mysql_fetch_array($Wynik)){ //pętla
foreach($W as $Klucz=>$Wartość){ // chyba nie muszę tłumaczyć.
echo("Twoj klucz to :$Klucz, a wartość to: $Wartość <br />\n");
}
}


mam nadzieje, że o to chodziło. Pozdro.
abcd
Ale jak robię inne zapytania to mi działa, a tylko w przypadku num_rows są kłopoty.
tanwel_programmer
Cytat(abcd @ 22.03.2009, 15:59:23 ) *
Nie wiem co robię źle sad.gif

Klasa Polaczenie:
  1. <?php
  2. $polacz;
  3. public function __construct()
  4.    {
  5.       $this->polacz = mysql_connect(...........);
  6.       mysql_select_db('baza', $this->polacz);
  7.       $this->query(&#092;"SET NAMES latin2\");
  8.    }
  9.  
  10. public function zapytanie($sql)
  11.    {
  12.       return mysql_query($sql, $this->polacz);
  13.    }
  14. ?>


Klasa Ksiazka:
  1. <?php
  2. public function ileKsiazek()
  3.    {
  4.       $polaczenie = new Polaczenie();
  5.       $sql = &#092;"SELECT * FROM ksiazki WHERE tytul = 'jjj'\";
  6.       $zapytanie = $polaczenie->zapytanie($sql);
  7.       $liczba_wierszy=$zapytanie->num_rows;
  8.  
  9.       return $liczba_wierszy;
  10.    }
  11. ?>


Nic nie jest zwracane, co robię źle ?




Odp:
Więc sprobuj zamiast zapytania "SELECT * FROM `ksiazki` WHERE `tytul`="jjj"; użyć zapytania: "SELECT COUNT(*) FROM `ksiazki` WHERE `Tytul`="jjj". wtedy nie zwruci ci tablicy książek ale wartość jaką ta bablica posiada. np jeżeli będziesz miał 10 książek to zwróci ci liczbę 10.
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.