PDA

Zobacz pełną wersję : Problem z Joomleague Joomla 1.0.15



Aro0n
29-08-2009, 22:26
Więc takie błędy mi wyskakują...
W Next match

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'AS home_name, \n t2. AS away_name, \n c1. AS home_\' at line 6 SQL=SELECT m.match_date AS datum, \n m.matchpart1 AS home, \n m.matchpart2 AS away, \n m.*, \n r.matchcode, r.name as round, \n t1. AS home_name, \n t2. AS away_name, \n c1. AS home_logo, \n c2. AS away_logo, \n j.name AS project_name FROM jos_joomleague_matches AS m \n INNER JOIN jos_joomleague AS j ON m.project_id = j.id \n INNER JOIN jos_joomleague_rounds AS r ON m.round_id = r.id \n INNER JOIN jos_joomleague_teams AS t1 ON m.matchpart1 = t1.id \n INNER JOIN jos_joomleague_teams AS t2 ON m.matchpart2 = t2.id \n LEFT JOIN jos_joomleague_clubs AS c1 ON t1.club_id = c1.id \n LEFT JOIN jos_joomleague_clubs AS c2 ON t2.club_id = c2.id WHERE m.project_id IN (0) \n AND m.published \n AND DATE_ADD(m.match_date, INTERVAL \'0\' MINUTE) > \'2009-08-29 20:24:51\' ORDER by m.match_date, datum
a w JoomLeague Ranking

No project specified in configuration or in page url ('&p=XX'), or project not foun

Jola
29-08-2009, 22:47
Witam,
odszukaj wystąpienie kłopotliwego kodu - zapytanie sql do bazy - i usuń wszystkie wystąpienia "/n" zastępując spacją.
Pozdrawiam

Aro0n
29-08-2009, 23:10
Może za krótki sie w tym bawie, ale nie moge tego znaleźdź ; /

Jola
30-08-2009, 00:30
Piszesz, że problem występuje w modułach, trzeba więc szukać w plikach modułów:
modules/mod_joomleague_next_match.php itd
Ten moduł, który znalazłam nie zawiera dosłownie znaków \n, tylko niewidoczne przejście do nowej linii (enter). Nie jest to zbyt szczęśliwe rozwiązanie. Zamiast - przykładowo:

$query .= " FROM #__joomleague_matches AS m
LEFT JOIN #__joomleague AS j ON m.project_id = j.id
LEFT JOIN #__joomleague_rounds AS r ON m.round_id = r.idpowinno być:

$query .= " FROM #__joomleague_matches AS m ".
" LEFT JOIN #__joomleague AS j ON m.project_id = j.id ".
" LEFT JOIN #__joomleague_rounds AS r ON m.round_id = r.id ".
Niestety taki rodzaj zapisu jest stosowany w wielu miejscach komponentu.
Pozdrawiam

Aro0n
30-08-2009, 00:52
ja mam takie coś

$query .= " FROM #__joomleague_matches AS m
INNER JOIN #__joomleague AS j ON m.project_id = j.id
INNER JOIN #__joomleague_rounds AS r ON m.round_id = r.id
INNER JOIN #__joomleague_teams AS t1 ON m.matchpart1 = t1.id
INNER JOIN #__joomleague_teams AS t2 ON m.matchpart2 = t2.id
LEFT JOIN #__joomleague_clubs AS c1 ON t1.club_id = c1.id
LEFT JOIN #__joomleague_clubs AS c2 ON t2.club_id = c2.id";

jak zrobiłem


$query .= " FROM #__joomleague_matches AS m
" INNER JOIN #__joomleague AS j ON m.project_id = j.id ".
" INNER JOIN #__joomleague_rounds AS r ON m.round_id = r.id ".
to bład line 251. wyskoczył i troche strony urwało.
ja posiadam all_modules_093 < takie coś z joomleague

wrzuciłem mój folder na serwer

http://www.speedyshare.com/263471251.html
jakby ktoś mógł mi to zamienić to byłbym bardzo wdzięczny. Pozdrawiam.

Jola
30-08-2009, 01:06
Nie przesadzaj, trzeba być tylko odrobinę bardziej uważnym. Podaję przykład:

$query .= " FROM #__joomleague_matches AS m
INNER JOIN #__joomleague AS j ON m.project_id = j.id
INNER JOIN #__joomleague_rounds AS r ON m.round_id = r.id
INNER JOIN #__joomleague_teams AS t1 ON m.matchpart1 = t1.id
INNER JOIN #__joomleague_teams AS t2 ON m.matchpart2 = t2.id
LEFT JOIN #__joomleague_clubs AS c1 ON t1.club_id = c1.id
LEFT JOIN #__joomleague_clubs AS c2 ON t2.club_id = c2.id";zamieniasz na (patrz na wszystkie: ". i "+spacja)

$query .= " FROM #__joomleague_matches AS m".
" INNER JOIN #__joomleague AS j ON m.project_id = j.id".
" INNER JOIN #__joomleague_rounds AS r ON m.round_id = r.id".
" INNER JOIN #__joomleague_teams AS t1 ON m.matchpart1 = t1.id".
" INNER JOIN #__joomleague_teams AS t2 ON m.matchpart2 = t2.id".
" LEFT JOIN #__joomleague_clubs AS c1 ON t1.club_id = c1.id".
" LEFT JOIN #__joomleague_clubs AS c2 ON t2.club_id = c2.id";

benio07
30-08-2009, 09:34
Tu otrzymasz pomoc na temat joomleague http://www.joomleague.de/forum/index.php/board,88.0.html

Aro0n
30-08-2009, 14:26
napisałem na joomleague ale tam chyba nie doczekam się odpowiedzi, a robiłem tak jak @jolasss kazał i to samo było : /

zwiastun
30-08-2009, 14:38
@jolaass jest niewiastą.
Bez złośliwości przypomnę Ci, że to miały być 3 minuty! Przeanalizuj to, co Ci @jolaass podpowiedziała. O ile wiem, komponent nie powinien w ogóle sprawiać takich kłopotów. Nie oczekuj również, że na forum użytkowników komponentu siedzi kopa oczekujących aż ktoś zada pytanie i będzie można na nie odpowiedzieć. Cierpliwości!

Jola
30-08-2009, 15:16
Jak widać @AroOn ma problem z analizą - nawet podpisów - podejrzewam, że nie zmienił w skrypcie nic poza podanym przykładem.
Nie będę "taka", podam łatwiejsze rozwiązanie:
Można zastosować funkcję usuwającą białe znaki z zapytań. Linia 279 i 377:
Przed $database->setQuery($query);
wstawić: $query = ereg_replace("\r\n"," ",$query);
Czyli po zmianie powinno wyglądać tak:

$query = ereg_replace("\r\n"," ",$query);
$database->setQuery($query);Pozdrawiam

Aro0n
31-08-2009, 00:14
Troche zrozumiałem to co mi napisałaś zrobiłem tak jak kazałaś , i zostalo tylko
Parse error: syntax error, unexpected '*' in /home/centrump/public_html/cp/modules/mod_joomleague_next_match.php on line 373
ale zaraz to jakos postaram sie zrobic. : ))

jeśli ją usune to napisane jest:


Parse error: syntax error, unexpected T_STRING in /home/centrump/public_html/cp/modules/mod_joomleague_next_match.php on line 375a wyglada tak:


"373 linijka" p.*
FROM #__joomleague_matches m
LEFT JOIN #__joomleague p ON m.project_id = p.id
WHERE (( m.matchpart1 = $match->matchpart2 AND
m.matchpart2 = $match->matchpart1) OR
( m.matchpart1 = $match->matchpart1 AND
m.matchpart2 = $match->matchpart2)) AND
m.match_date < '".date('Y-m-d H:i:s',$thistime)."' ORDER by m.match_date DESC LIMIT 1";

Jola
31-08-2009, 18:09
Witam,
zapis tego typu jest nieprawidłowy:

SELECT m.match_date AS datum,
m.matchpart2_result AS away,
m.matchpart1_result AS home,
m.matchpart2 AS team_away,
m.matchpart1 AS team_home,
p.*
FROM #__joomleague_matches m
........Powinno być:

SELECT p.*, m.match_date AS datum,
m.matchpart2_result AS away,
m.matchpart1_result AS home,
m.matchpart2 AS team_away,
m.matchpart1 AS team_home
FROM #__joomleague_matches m
.....
Pomijam tutaj fakt stosowania enterów - też nieprawidłowy, ale to zostało rozwiązane wcześniej.

Aro0n
31-08-2009, 19:06
no zrobiłem to i wyskoczyło

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'AS home_name, t2. AS away_name, c1. AS home_lo\' at line 1 SQL=SELECT m.match_date AS datum, m.matchpart1 AS home, m.matchpart2 AS away, m.*, r.matchcode, r.name as round, t1. AS home_name, t2. AS away_name, c1. AS home_logo, c2. AS away_logo, j.name AS project_name FROM jos_joomleague_matches AS m INNER JOIN jos_joomleague AS j ON m.project_id = j.id INNER JOIN jos_joomleague_rounds AS r ON m.round_id = r.id INNER JOIN jos_joomleague_teams AS t1 ON m.matchpart1 = t1.id INNER JOIN jos_joomleague_teams AS t2 ON m.matchpart2 = t2.id LEFT JOIN jos_joomleague_clubs AS c1 ON t1.club_id = c1.id LEFT JOIN jos_joomleague_clubs AS c2 ON t2.club_id = c2.id WHERE m.project_id IN (0) AND m.published AND DATE_ADD(m.match_date, INTERVAL \'0\' MINUTE) > \'2009-08-31 19:04:14\' ORDER by m.match_date, datum

a gdy zrobiłem tak



$query = "SELECT p.*, m.match_date AS datum,".
" m.matchpart2_result AS away,".
" m.matchpart1_result AS home,".
" m.matchpart2 AS team_away,".
" m.matchpart1 AS team_home".
" FROM #__joomleague_matches m".

to znowu pisało coś z 374 linijką :C

Aro0n
31-08-2009, 20:34
a gdy zrobiłem tak"

$query = "SELECT p.*, m.match_date AS datum,".
" m.matchpart2_result AS away,".
" m.matchpart1_result AS home,".
" m.matchpart2 AS team_away,".
" m.matchpart1 AS team_home".
" FROM #__joomleague_matches m".
" LEFT JOIN #__joomleague p. ON m.project_id = p.id".
" WHERE (( m.matchpart1 = $match->matchpart2 AND".
" m.matchpart2 = $match->matchpart1) OR".
" ( m.matchpart1 = $match->matchpart1 AND".
" m.matchpart2 = $match->matchpart2)) AND".
" m.match_date < '".date('Y-m-d H:i:s',$thistime)."' ORDER by m.match_date DESC LIMIT 1";

$database->setQuery($query);

to nawet miałem więcej możliwości ; / ale it akb ledy ; /