Dies ist eine Teilmenge einer größeren Abfrage, die ich in phpmyadmin ausgearbeitet habe, aber ich bin ein wenig verloren und verwirrt bei der Syntax, es zu bekommen arbeite in einer Komponente, die ich in Joomla erstelle.Joomla: scheint nicht zu fallen oder Tabellen zu erstellen oder löschen sogar Zeilen mit JDatabase
Der Code, der in phpMyAdmin funktioniert:
drop table if exists tests_mod_ques;
create table tests_mod_ques as
select p.student_userid, q.question_mod, q.question_id, p.student_passedchk
from `tests_students` p
inner join `tests_questions` q on p.question_id = q.question_id
group by p.student_userid, q.question_mod, q.question_id, p.student_passedchk
;
Der Code, der eine 1064 Syntaxfehler ist zu werfen:
$query = parent::getListQuery();
$query->dropTable('#__tests_mod_ques', 'true');
$query->createTable('#__tests_mod_ques AS
select (p.student_userid
, q.question_mod
, q.question_id
, p.student_passedchk)
');
$query->from('#__tests_students AS p');
$query->join('#__tests_questions AS q ON p.question_id = q.question_id');
$query->group('p.student_userid
, q.question_mod
, q.question_id
, p.student_passedchk
');
....
$db = $this->getDbo();
return $query;
ich nur die dropTable statment getestet und obwohl es nicht werfen einen Fehler haben es hat nicht den Tisch fällt noch im Debugger angezeigt, so bin ich wahrscheinlich nicht so richtig mit: http://api.joomla.org/Joomla-Platform/Database/JDatabase.html#dropTable
Kann nicht scheinen, ein zu finden Y-Referenz zum Erstellen außer für diese:
Auch ich habe eine INSERT…ON DUPLICATE KEY UPDATE
Abfrage kommen, dass ich nicht sicher bin, wie man entweder an.
Danke!
bearbeiten
ich Zeilen als Behelfslösung versucht haben, löschen, nicht registrieren, auch nicht. Der Debugger wurde erneut überprüft und die Löschabfrage wird nicht angezeigt.
$query->delete('#__tests_mod_ques');
Das
Frustrierende nach http://api.joomla.org/Joomla-Platform/Database/JDatabaseQuery.html#$delete
und http://docs.joomla.org/JDatabaseQuery::delete/1.6
arbeiten sollte! Hat jemand eine Idee?
Danke!
Können Sie die Abfrage drucken, so dass Sie sehen konnten, ob es richtig von DB-Klasse interpretiert wird? –
Wenn ich ' Ich mache es richtig (das könnte ein großes if sein!), dann taucht die dropTable nicht auf. Warf ein 'print_r ($ query);' dort tauchte die dropTable nicht auf, sondern der Rest der Abfrage (der ' "Teil, der funktioniert hat", hat es auch nicht im Debugger gezeigt, warum ich denke, dass ich es nicht richtig gebrauche, aber keine guten Beispiele finde. – Gisto