joytec
4.01.2007, 18:34:07
Dzien dobry.
na drugim poziomie wywolania rekurencyjnego mam blad przy $wynik-fetch() , blad $wynik nie jest obiektem. nie wiem czy ktos probowal rekurencje z pdo, jesli tak chetnie prosze o jakies sugestie. pozdrawiam.
dr_bonzo
4.01.2007, 18:37:04
Pokaz kod.
@joytec: a nie lepiej przetestować na jakimś krótkim przykładowym kodzie? od razu będzie łatwiej podejść do problemu
joytec
4.01.2007, 19:12:28
przepraszam do poprawki. ok dwoja do dziennika.
<?php
interface categoriesList{
public function categories($parent, $level);
}
class categoriesListImpl implements categoriesList{
public function __construct(PDOInter $connect){
$this->_dao = $connect->getInstance();
}
public function categories($parent, $level){
$result_categories = $this->_dao->query('SELECT name, ID, ID_Parent FROM categories WHERE
ID_Parent = $parent ;');
if(count($result_categories)){ while($rows = $result_categories->fetch()){
$this->categories($rows['ID'], $level+1);
}
}
}
}
?>
na drugim levelu mam taki blad :
Fatal error: Call to a member function fetch() on a non-object in C:\WebServer\Apache2\htdocs\ovadia\model\dao\categories.class.php on line 23
Hm, $result_categories na pewno jest klasą? Sprawdź to.
joytec
4.01.2007, 20:18:16
nie. nie jest, nie wiem dlaczego
Masz błąd, już widzę nawet. Problemem jest to, że nie wyświetlasz błędów. Ustaw sobie może najlepiej by PDO wyrzucało wyjątki, albo ustaw wyświetlanie błędów i error_reporting na E_ALL.
joytec
4.01.2007, 20:27:57
o nie rozwiaze problemu. Polaczenie z baza mam w zmiennej statycznej wiec nie rozumiem dlaczego zmienna $result_categories nie jest obiektem.
Problemem jest to, że to zapytanie sql zwróci błąd. Więc trudno by zwróciło obiekt z rekordami.
joytec
4.01.2007, 20:48:09
Cytat(sf @ 4.01.2007, 20:45:21 )

Problemem jest to, że to zapytanie sql zwróci błąd. Więc trudno by zwróciło obiekt z rekordami.
jak juz wczesniej napisalem mam 4 levele a blad wyswietla sie na drugim wiec ne ma takiej mozliwosci aby zapytanie sqloew zwrocilo blad. zreszta moglbys pokazac gdzie ten blad.
<?php
echo 'SELECT name, ID, ID_Parent FROM categories WHERE ID_Parent = $parent' ; ?>
zamieni Ci to $parent na wartość?
joytec
4.01.2007, 22:07:24
Cytat(sf @ 4.01.2007, 21:58:43 )

<?php
echo 'SELECT name, ID, ID_Parent FROM categories WHERE ID_Parent = $parent' ; ?>
zamieni Ci to $parent na wartość?
spoko jest dobrze rozumiem ze nie mozesz mi pomoc. dziekuje za checi
joytec - czytaj uważniej, zamiast unosić się honorem. W zawodzie programisty to bardzo niezdrowe...
sf udzielił ci odpowiedzi już parę postów wcześniej, jednak nie raczyłeś jej uwzględnić. A powiedział Ci, bys ustawić, by PDO zwracało Ci wyjątki z błędami SQL - inaczej bardzo trudno jest je wykrywać w przypadku tej biblioteki.
Wtedy szybko byś się przekonał, że różnica pomiędzy ' (apostrof) a " (cudzysłów) jest nieco większa, niż się niektórym wydaje...
OT. Kurcze - skąd u informatyków bierze się takie zadufanie w sobie? Ostatnio ciągle mam do czynienia w tej branży z nadętymi "osobowościami".
I dziwić się później, że społeczeństwo paczy na ludzi z branży IT jak na dziwaków...
joytec
4.01.2007, 22:34:46
Cytat(DeyV @ 4.01.2007, 22:29:43 )

joytec - czytaj uważniej, zamiast unosić się honorem. W zawodzie programisty to bardzo niezdrowe...
sf udzielił ci odpowiedzi już parę postów wcześniej, jednak nie raczyłeś jej uwzględnić. A powiedział Ci, bys ustawić, by PDO zwracało Ci wyjątki z błędami SQL - inaczej bardzo trudno jest je wykrywać w przypadku tej biblioteki.
Wtedy szybko byś się przekonał, że różnica pomiędzy ' (apostrof) a " (cudzysłów) jest nieco większa, niż się niektórym wydaje...
OT. Kurcze - skąd u informatyków bierze się takie zadufanie w sobie? Ostatnio ciągle mam do czynienia w tej branży z nadętymi "osobowościami".
I dziwić się później, że społeczeństwo paczy na ludzi z branży IT jak na dziwaków...
doprawdy nie rozumiem wszystkie zeczy o ktorych mowi "sf" sa uwzglednione w moim skrypcie i nie rozwiazuja problemu. czasami mam tez takie wrazenie a co wiecej PROSZE MNIE NIE OBRAZAC jakims ogolem. Czasami ludzie pisza rozne bzdety aby podniesc licznik postow a przeciez nie o ilosc a o jakosc chodzi prawda!?
MrMag
4.01.2007, 22:34:48
nie jestem pewien, ale gdzies wyczytalem, ze w pdo/opd rekurencja w zapytaniach jest niemozliwa a przynajmniej niezalecana (to 2 zreszta ogolnie jest niezalecane

)
Cytat(sf @ 4.01.2007, 21:58:43 )

<?php
echo 'SELECT name, ID, ID_Parent FROM categories WHERE ID_Parent = $parent' ; ?>
zamieni Ci to $parent na wartość?
Choroba jasna - wykonałeś ten kod?

?
Nie widzisz, co jest nie tak?
joytec
4.01.2007, 22:37:52
Ja sie unosze honorem ja podziekowalem grzecznie i sie nie skarze u wyzszej instancji sorkiii....
joytec
4.01.2007, 22:46:21
tak wszystko jest jak nalezy
"SELECT name, ID, ID_Parent FROM categories WHERE ID_Parent = " . $parent .";"
Jeśli chcesz stosować zapis rozbity, to równie dobrze (a może i lepiej

) będzie skorzystać właśnie z ' (apostrofów)
Natomiast " (cudzysłów) pozwoliłby na zapis taki, jak w pierwszym przypadku. Nie jest to jednak zalecane, ponieważ obniża czytelność kodu.
joytec
5.01.2007, 13:58:13
gratuluje to nie rozwiazalo mojego problemu
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.