как использовать DATE FORMAT в моем запросе?

это работает на phpmyadmin, но дает мне и ошибку, когда я использую код, ошибка говорит об ошибке Parse: синтаксическая ошибка, неожиданный «%» ….

Что случилось с моим sintax>?

<?php $database =& JFactory::getDBO(); //Declare Variables $user = JFactory::getUser(); $id = $user->get('id'); $name = $user->get('name'); // Display quizzes echo "</br>"; echo "Quizzes History for : " ; echo "<b>"; echo $name; echo "</b>"; echo "</br>"; echo "</br>"; $database->setQuery(" SELECT distinct qui.title AS name, ( SELECT GROUP_CONCAT(profiles.title) FROM jos_jquarks_users_profiles AS users_profiles LEFT JOIN jos_jquarks_profiles AS profiles ON users_profiles.profile_id = profiles.id WHERE users_profiles.user_id = sessionWho.user_id ) AS profile, ( SELECT sum(score) FROM jos_jquarks_quizzes_answersessions WHERE quizsession_id = quizSession.id AND status <> -1 ) AS score, ( SELECT count(distinct question_id) FROM jos_jquarks_quizzes_answersessions WHERE quizsession_id = quizSession.id ) AS maxScore, DATE_FORMAT(quizSession.finished_on,'%M %d, %Y') FROM jos_jquarks_quizsession AS quizSession LEFT JOIN jos_jquarks_users_quizzes AS users_quizzes ON users_quizzes.id = quizSession.affected_id LEFT JOIN jos_jquarks_quizzes AS qui ON users_quizzes.quiz_id = qui.id LEFT JOIN jos_jquarks_quizzes_answersessions AS quizSessAns ON quizSessAns.quizsession_id = quizSession.id LEFT JOIN jos_jquarks_sessionwho AS sessionWho ON sessionWho.session_id = quizSession.id LEFT JOIN jos_jquarks_users_profiles AS users_profiles ON users_profiles.user_id = sessionWho.user_id LEFT JOIN jos_jquarks_profiles AS profiles ON profiles.id = users_profiles.profile_id WHERE sessionWho.user_id = ' .$id " ) ; if (!$database->query()) { //write data and if error occurs alert echo "<script> alert('".$database->getErrorMsg()."'); </script>"; } //var_dump($database); $tableStyle = "padding: 5px;border:1px"; $tdStyle = "padding:5px "; $thStyle = "padding:7px "; echo '<table style="' . $tableStyle . '" cellpadding="7" cellspacing="7">'; echo "<tr> <th style=align:center>Quiz Title </th><th style=align:center> Score </th><th>Maximum Score </th><th> Unanswered </th> <th>Finished On </th></tr>"; $row = $database->loadRowList(); foreach($row as $valuearray) { echo '<tr style=" align="center">'; foreach($valuearray as $field) { echo "<td>$field</td>"; } echo "</tr>"; } echo "</table>"; ?> 

Вы должны избегать отметки. Поэтому вместо

  DATE_FORMAT(quizSession.finished_on,'%M %d, %Y') 

пытаться

  DATE_FORMAT(quizSession.finished_on,\'%M %d, %Y\') 

Или вы можете просто использовать двойные кавычки ", чтобы начать и закончить строку.

Это потому, что ваша строка заканчивается одинарными кавычками $database->setQuery(' – просто измените на двойные кавычки, и она будет работать.

 $database->setQuery(" ");