Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wywołaniem
Forum PHP.pl > Forum > PHP
TylkoPolak
Witam.

Mam nastepujaca funcje w klasie Test, a klasa test dziedziczy wlasnosci z DbConnect (Test extends DbConnect) --> mam swiadomosc, ze funkcja ta nie jest do konca poprawna ale na razie takie rozwiązanie wymyśliłem).

  1. public function getForms ($fid) {
  2.  
  3. $db = new DbConnect();
  4.  
  5. $query = $db->query("SELECT fid,
  6. namef,
  7. dateadd
  8. FROM form
  9. WHERE fid='".$fid."'");
  10.  
  11. while ($form = $db->fetchArray($query)){
  12.  
  13. echo $form['namef'];
  14.  
  15. }
  16. // return $form;
  17. }


wywołuje ja:
  1. $form = new Test();
  2. $costam = $form->getForm($id);


Jestem w stanie wywołać 1 element tabeli przypisujac odpowiednia wartosc id. Chciałbym jednak moc wyświetlic liste wszystkich pól. Czy jestem w stanie to zrobic z tego poziomu i z tym zapytaniem? Probowałem petlę for i wyświetlenie wszystkich id ale otrzymałem pusty rezultat.

dod informacje: query() i fetchArray() to funcje zadeklarowane w klasie DbConnect() do zwracania zapytania i tablicy.
  1. public function query($query) {
  2.  
  3. $this->_theQuery = $query;
  4. $sql= mysql_query($query, $this->_link)or die(trigger_error(mysql_error()));
  5. return $sql;
  6.  
  7. }


  1. public function fetchArray($result) {
  2.  
  3. return mysql_fetch_array($result,MYSQL_ASSOC);
  4.  
  5. }


Moim celem jest poprawne wyswietelenie listy elemento, oraz pozniejsza mozliwosc ich edycji (Edytuj, Usun, Zmien_nazwe).

Sorry za malo profesjonalna funkcje z 'wyswietleniem' wyniku, a nie ze zwroceniem jakiejsc wartosci ale nie moge na razie wykombinowac niczego innego co by smigalo.
nospor
Nie za bardzo kumam Twój problem: zapodajesz id forma i się dziwisz że tylko ten form ci wyświetla.

ps: przenosze. Z obiektówką to nie ma żadnego związku
Uriziel01
Pytanie 1)
Przyjrzyj się temu kawałkowi kodu:
  1. while ($form = $db->fetchArray($query))
  2. {
  3. echo $form['namef'];
  4. }


Aby otrzymać ładnie tablicę można szybko zmienić to na:
  1. $result = array();
  2. while ($form = $db->fetchArray($query))
  3. {
  4. $result[] = $form['namef'];
  5. }
  6. return $result;


Pytanie 2)
Otrzymać liste wszystkich 'namef' bez względu na ich id wykorzystując takie samo zapytanie można tylko poprzez sztuczkę z dynamiczna zmianą zapytania.
wystarczy zmienić:
  1. WHERE fid='".$fid."'"


zmienić na:
  1. ((isset($fid) AND !empty($fid)) ? "WHERE fid='".$fid."'" : '')


Pozdrawiam.
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.