Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Baza danych - problem
wojcikpilka
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 13.01.2011

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


Witam wszystkich.
Dołączyłem do mojej strony napisanej w drupalu małą bazę danych zapisaną w accesie. Oto kod który użyłem by sie połączyć i wyświetlić wyniki:
  1. <?php
  2. include_once('adodb5\adodb.inc.php');
  3. $db = NewADOConnection('access');
  4. $db->Connect('Driver={Microsoft Access Driver (*.mdb)};Dbq='.realpath('sites\92046.drupal.lab.kti.ue.poznan.pl\gazeciarnia.mdb'));
  5. // polecenie SQL
  6. $sql = "select idp, Nazwa, Cena, Kategoria from Tabela1";
  7. $rs = $db->Execute($sql);
  8. // odczyt danych
  9. while (!$rs->EOF) {
  10. echo $rs->Fields("Nazwa");
  11. echo " ";
  12. echo $rs->Fields("Cena");
  13. echo " ";
  14. echo $rs->Fields("Kategoria");
  15. echo " ";
  16. echo "<br/>";
  17. $rs->MoveNext();
  18. }
  19. // koniec pracy z baza danych
  20. $db->Close();
  21. ?>


Niestety kod jest niepoprawny. Wyświetla się błąd:
bool(false)
Fatal error: Call to a member function Fields() on a non-object in C:\bin\apache22\htdocs\includes\common.inc(1695) : eval()'d code on line 12

Bardzo bym prosił o pomoc, jest mi to potrzebne do zaliczenia przedmiotu.
Z góry dziękuje
Pozdrawiam:) [php][/php]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Ociu
post
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Przykład z manuala AdoDB wszystko obrazuje:
  1. $db->SetFetchMode(ADODB_FETCH_NUM);
  2.  
  3. $rs1 = $db->Execute('select * from table');
  4.  
  5. $db->SetFetchMode(ADODB_FETCH_ASSOC);
  6.  
  7. $rs2 = $db->Execute('select * from table');
  8.  
  9. print_r($rs1->fields); # shows array([0]=>'v0',[1] =>'v1')
  10. print_r($rs2->fields); # shows array(['col1']=>'v0',['col2'] =>'v1')


Jak widać, nawet z treści błędu, obiekt NewADOConnection nie funkcji Fields.
Go to the top of the page
+Quote Post
wojcikpilka
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 13.01.2011

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


Tylko sie nie śmiej. Więc co to znaczy? Jak mam zrobić żeby było dobrze. Bo niestety nie rozumiem w ogóle tematu.
Go to the top of the page
+Quote Post
vermis
post
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

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


Według tego co podał @Ociu $rs->fields jest tablicą, a nie funkcją.
Przed linią nr 7 wstaw
  1. $db->SetFetchMode(ADODB_FETCH_ASSOC);

a potem odwołaj się tak:
  1. $rs->fields['Nazwa'];



--------------------
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: 20.08.2025 - 17:42