Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][MySQL] - AdoDB, Acrive Record i load() problem z wyświetleniem zawartości tabeli
Forum PHP.pl > Forum > Przedszkole
taro
Witam.

Używam sobie AdoDB + Active Record do obsługi bazy i tutaj pojawia się bardzo śmieszny problem.

Mianowicie mam tabelę "wojewodztwa" gdzie mam 3 rekordy:

  1. $wojewodztwa = new wojewodztwa_table();
  2. if($wojewodztwa->load()) {
  3. print_r($wojewodztwa);


zwraca:
wojewodztwa_table Object ( [_table] => wojewodztwa [_dbat] => 0 [_tableat] => wojewodztwa [_where] => [_saved] => 1 [_lasterr] => [_original] => Array ( [0] => 1 [1] => podlaskie ) [foreignName] => wojewodztwa_table [id_woj] => 1 [nazwa] => podlaskie )

jak widać wyświetla tylko 1 pierwszy rekord, dlaczego ?

debug wskazuje:
(mysqlt): SHOW COLUMNS FROM `wojewodztwa`
(mysqlt): select * from wojewodztwa


zapytanie jest poprawne, ktoś pomoże?
Co robię źle, bo być może późna godzina jest przyczyną ?
Wave
Load nie zwraca właśnie tylko jednego wyniku? Spróbuj z Execute.
  1. 00404 function Load($where,$bindarr=false)
  2. 00405 {
  3. 00406 $db =& $this->DB(); if (!$db) return false;
  4. 00407 $this->_where = $where;
  5. 00408
  6. 00409 $save = $db->SetFetchMode(ADODB_FETCH_NUM);
  7. 00410 $row = $db->GetRow("select * from ".$this->_table.' WHERE '.$where,$bindarr);
  8. 00411 $db->SetFetchMode($save);
  9. 00412
  10. 00413 return $this->Set($row);
  11. 00414 }

Przy czym GetRow() zwraca pierwszy element z tablicy.
humanus
Możesz też użyć
  1. $woj_record_set = $wojewodztwa->Find('id != ?',array(0));


To nie jest piękne rozwiązanie, ale w $woj_record_set będziesz miał tablice aktywnych rekordów z województwami. Każde z pól tej zachowuje się jak pojedynczy active record.
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.