Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> nie moge pobrac liczby wierszy zapytania
abcd
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 22.03.2009

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


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 ?

Ten post edytował abcd 22.03.2009, 16:47:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
tanwel_programme...
post
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 6
Dołączył: 21.03.2009
Skąd: Obecny :)

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


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.
Go to the top of the page
+Quote Post
abcd
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 22.03.2009

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


Ale jak robię inne zapytania to mi działa, a tylko w przypadku num_rows są kłopoty.
Go to the top of the page
+Quote Post
tanwel_programme...
post
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 6
Dołączył: 21.03.2009
Skąd: Obecny :)

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


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.
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: 22.08.2025 - 04:12