Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z funkcjami do obsługi bazy danych, Dziwne błędy :/
Diwi
post
Post #1





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

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


Zrobiłem sobie niedawno system obługi bazy danych MySQL który zbudowany jest na wbudowanych funkcjach php do obsługi w/w bazy.

Przykładowe 3 funkcje wyglądają tak:

  1. <?php 
  2. function pytanie($zapytanie) {
  3.  
  4. $r = @mysql_query($zapytanie, $this->connect);
  5.  
  6.  
  7. if ($r) {
  8.  
  9. return $r;
  10.  
  11.  }
  12.  
  13.  elseif (!$r) {
  14.  
  15. echo '<br />Błąd zapytania SQL: '.mysql_errno().' : '.mysql_error();
  16. return FALSE;
  17.  
  18.  } 
  19.  
  20. }
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  /* function pobierz_rekordy */
  27.  /* funkcja pobiera rekordy do tablicy */
  28.  
  29.  function pobierz_rekordy($zapytanie) {
  30.  
  31.  $r = @mysql_fetch_assoc($zapytanie);
  32.  
  33.  if ($r) {
  34.  
  35. return $r;
  36.  
  37. }
  38.  
  39.  elseif (!$r) {
  40.  
  41. echo '<br />Błąd przy pobieraniu rekordów: '.mysql_errno().' : '.mysql_error();
  42. return FALSE;
  43.  
  44. }
  45.  
  46.  
  47.  } /* function pobierz_rekordy(string) */
  48.  
  49.  
  50.  /* function ilosc_rekordow */
  51.  /* funkcja pobiera ilośc rekorów pobranych w wyniku wykonania zapytania SQL */
  52.  
  53.  ?>


No i nie wiem dlaczego gdy wywołuje sobie taki skrypcik:

  1. <?php
  2.  
  3. include('./db.php');
  4.  
  5. $db = new DB;
  6.  
  7. $result = $db->pytanie(&#092;"SELECT * FROM `news`\" );
  8.  
  9. while ($row = $db->pobierz_rekordy($result)) {
  10.  
  11. echo $row['id'].&#092;"n\";
  12.  
  13.  } 
  14.  
  15. ?>


Wyrzuca mi coś takiego:
Kod
6 8 9 10
Błąd przy pobieraniu rekordów: 0 :

No i nie wiem czemu wywala ten błąd sad.gif zapytanie jest dobre i wyświetla numery ID tak jak powinno ale nie wiem czemu wywala błąd :/

Czy wie ktoś gdzie tutaj jest błąd

Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i wszystko się zgadza. W pętli wywołujesz $db->pobierz_rekordy($result).
Zwraca ci pierszy rekord i znowu wywoluje tą metodę bo za pierwszym razem zwrócilo rekord. Za drugim razem już nie zwraca rekordu, bo zapewne masz tylko jeden rekord, wieć zwraca ci false bo już nie ma więcej rekordów.

W pobierz_rekordy nie musisz już wywalać bledu (bo to nie blad), skoro juz wywalasz w pytanie()

Ten post edytował nospor 4.05.2005, 10:42:56


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Diwi
post
Post #3





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

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


Hm.. nie mam jednego rekordu smile.gif są 4 co widać po wyświetlanych ID. Wracając do tematu to nie ma sensu robić raportowania błędów dla funkcji mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual() questionmark.gif

Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No zgadza się. Masz 4 rekordy. Źle spojrzalem. Ale to nie zmienia faktu rzeczy, że przy próbie pobrania piątego rekordu, któego nie ma, zwraca ci false, a ty to komunikujesz jako błąd.
Przy pobieraniu rekordów nie będzie błędu, jeśli nie było go w zapytaniu.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Diwi
post
Post #5





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

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


@nospor dzięki problem rozwiązany usunąłem wyświetlanie błędu przy funkcji pobierz_rekordy i wszystko jest OK smile.gif

Pozdrawiam
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: 19.08.2025 - 07:45